Можете ли вы переписать htaccess ReWriteRule? - PullRequest
0 голосов
/ 27 января 2012

Просто интересно, возможно ли 301 перенаправить существующий Rewriterule?

Например, если в моем файле .htaccess есть следующая строка:

RewriteRule ^ blue-widgets / bluewidgets.php

, а затем мне нужно изменить структуру URL, но URL "blue-widgets /" имеет хороший рейтинг в поисковых системах, который я не потеряю, возможно ли добавить еще одно правило перезаписи (301)что перенаправляет этот URL слишком "newdirectory / blue-widgets /"?Если да, то как это сделать, является ли это простым случаем добавления нового rewriterule под существующим?

Имеет ли тот факт, что у вас есть 2 перезаписи, замедление страницы или другие проблемы?

Ответы [ 2 ]

0 голосов
/ 27 января 2012

Вы путаете два совершенно разных аспекта: внутреннее и внешнее переписывание.

301 и 302 являются внешними изменениями и фактически передают инструкцию перенаправления обратно в браузер пользователя. 301 сообщает браузеру (и поисковым системам), что изменение адреса является постоянным.

Правила перезаписи без флага [R] выполняют внутреннее перенаправление - это перераспределение внутри подсистемы Apache / IIS, которое не доступно внешнему миру.

Да, у вас может быть несколько внутренних URI, перенаправляющих на одну и ту же цель, но, как вы их написали, они не будут внешними, а не 301.

0 голосов
/ 27 января 2012

Попробуйте

RewriteRule ^blue-widgets/$ /new-directory/blue-widgets/ [L,NC,R=301]
RewriteRule ^new-directory/blue-widgets/$ bluewidgets.php [L,NC]

Имеет ли тот факт, что у вас есть 2 перезаписи, замедление страницы или возникли какие-либо другие проблемы?

301 для отправки blue-widgets to new-directory/blue-widgets кэшируется и происходит только один раз для каждого клиента, поэтому производительность должна быть минимально затронута.

Однако, если вы можете, вы также должны изменить эту ссылку на вашем сайте, чтобы она была new-directory/blue-widgets

...