.htaccess обратная перезапись без зацикливания?
-
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]
Я не тестировал вышеописанное, но я считаю, что это должно сработать.