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

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

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

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

Благодаря!

.htaccess,mod-rewrite,

0

Ответов: 2


1 принят

Вы можете переименовать файл, например, 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-флаг.)


0

Вы можете использовать флаги Last Rule и Redirect, чтобы делать то, что вы хотите (см. Документацию 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]

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

.htaccess, мод-переписывают,
Похожие вопросы
Яндекс.Метрика