2012-05-23 3 views
2

Я делаю то, что, как я думал, было простым .htaccess, переписывать для создания более удобных URL-адресов. Я хочу, чтобы URL-адрес, как это:htaccess переписывает правила без флага R, создавая внешние перенаправления

http://my-site.com/design/design-name/ 

заменить URLs так:

http://my-site.com/store?design=design-name 

поэтому я добавил это правило к моему .htaccess:

RewriteEngine On 
RewriteRule ^design/(.+) http://my-site.com/store?design=$1 [L] 

Однако ведет себя, как если есть флаг R и внешний вид перенаправление (изменение URL-адреса в адресной строке браузера). Перенаправление работает нормально, но не должно быть только внутренне перенаправление с использованием правила, которое я использую?

+4

Удалить «http: // my-site.com/» из RewriteRule и оставить только «store? Design = $ 1 [L]». – Ansari

ответ

3

Ansari верен. Как упоминалось, here, включая доменное имя в целевом URL, превращает его в перенаправление 302. Изменение

RewriteRule ^design/(.+) http://my-site.com/store?design=$1 [L] 

в

RewriteRule ^design/(.+) store?design=$1 [L] 

и он должен работать правильно.

+0

Вот и все. Благодаря! –

Смежные вопросы