2014-01-28 4 views
1

Итак, я пытаюсь сделать это:"Two Way" Переписать

У нас есть URL /brand/new-inventory.php. Это физический файл на нашем сайте. Что я хочу сделать: /brand/new. Теперь это было легко. Все, что мне пришлось добавить, было RewriteRule ^brand/new$ brand/new-inventory.php [L,QSA].

Теперь, что я хотел бы получить настройки, и я боролся с это:

Мы должны /brand/new-inventory.php при просмотре кем-то для перенаправления /brand/new поэтому мы должны соответствовать URL, и что-нет.

Но, когда я пытаюсь RewriteRule ^brand/new-inventory.php$ brand/new [R=301,L] Firefox начинает жаловаться на цикл переадресации, который никогда не закончится.

Как я могу переписать страницу для ответа на другой URL-адрес и перенаправить старый URL-адрес на новый?

ответ

1

Имейте это так:

RewriteCond %{THE_REQUEST} \s/+brand/new-inventory\.php[/\s?] [NC] 
RewriteRule^/brand/new [R=302,L] 

RewriteRule ^brand/new$ /brand/new-inventory.php [L,NC] 

разница является использование %{THE_REQUEST}, который представляет исходный запрос, полученный Apache с помощью браузера. Значение этой переменной не изменяется с применением других правил перезаписи.

+0

Что такое '\ s/+' for? Зачем должно быть пространство перед URI запроса? – marcaddeo

+0

'% {THE_REQUEST}' имеет это содержимое 'GET /brand/new-inventory.php HTTP/1.1' – anubhava