.htaccess обратная перезапись без зацикливания?

StackOverflow https://stackoverflow.com/questions/1006989

  •  06-07-2019
  •  | 
  •  

Вопрос

У меня есть существующая страница под названием bfly.php что мне нужно изменить на butterfly-jewelry.php

Я хочу сделать так, чтобы, если кто-то перейдет по URL butterfly-jewelry.php они получают bfly.php страницу, но URL-адрес не меняется, он остается таким butterfly-jewelry.php.НО также, если кто-то переходит непосредственно на bfly.php URL-адрес изменяется на butterfly-jewelry.php

Есть ли способ сделать это, не застревая в цикле перезаписи?

Спасибо!

Это было полезно?

Решение

Вы могли бы переименовать файл, например, вbfly1.php а затем используйте это:

RewriteRule ^butterfly-jewelry\.php bfly1.php [L,QSA]
RewriteRule ^bfly\.php http://yourhost.com/butterfly-jewelry.php [L,QSA,R=301]

(Я попробовал решение Blixt, но это вызвало бесконечный цикл, несмотря на L-флаг.)

Другие советы

Вы можете использовать последнее правило и флаги перенаправления, чтобы делать то, что вы хотите (см. документация mod_rewrite):

# Rewrite request to bfly.php, and then stop the rewrite engine.
RewriteRule ^butterfly-jewelry\.php$ bfly.php [L]
# Redirect the client to butterfly-jewelry.php with "Permanently Moved" status
RewriteRule ^bfly\.php$ butterfly-jewelry.php [L,R=301]

Я не тестировал вышеописанное, но я считаю, что это должно сработать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top