Перенаправления 301 в .htaccess должны быть в приоритетном порядке? - PullRequest
5 голосов
/ 02 марта 2012

У меня есть сайт, который был переработан, и URL-адреса совершенно разные.У меня есть сотни или 301 (первоначальные URL-адреса были очень длинными - я понятия не имею, почему), и я получаю несколько забавных результатов, когда некоторые перенаправления происходят, а другие перенаправляют, но на нечетные URL-адреса.Мне было интересно, есть ли особый порядок, в котором нужно войти 301-м. Например:

redirect 301 /News/Smart-Site-Waste-Management.aspx http://...
redirect 301 /News/tabid/96/tagid/68/damaged-doors.aspx http://...
redirect 301 /News/tabid/96/EntryId/91/Smart-Site-Waste-Management.aspx http://...
redirect 301 /News/tabid/96/EntryId/156/Plastic-Surgeon-hits-the-headlines.aspx http://...
redirect 301 /News/RepairoftheWeek/tabid/194/tagid/78/Gallery/RepairoftheWeek/tabid/194/EntryId/221/Scratched-laminate-floor-repair.aspx http://...

Поэтому мой фактический вопрос заключается в том, должны ли "меньшие" URL-адреса (те, которые имеют меньше уровней каталогов) быть нижеэтот порядок и более конкретные URL будут выше?Мой инстинкт подсказывает мне, что если он установлен так, как указано выше, все эти URL-адреса будут перенаправлены на новую ссылку, указанную в ПЕРВОЙ, поскольку все они начинаются с "News /".Это то, что я вижу на практике.

Ответы [ 2 ]

5 голосов
/ 02 марта 2012

Вам нужно разместить наиболее специфичные вверху и наименее специфичные внизу.Кроме того, убедитесь, что вы останавливаете обработку, используя [L] после каждого правила перенаправления, чтобы убедиться, что apache не обрабатывает дополнительные правила перезаписи после того, как он нашел соответствующее правило.

Не могли бы вы опубликовать свой .htaccessфайл

0 голосов
/ 03 марта 2012

Порядок важен только в том случае, если имеется несколько строк соответствия (например, если вы также используете RedirectMatch или mod_rewrite RewriteEngine On, которые могут взаимодействовать с директивами перенаправления.

Вы испытаете снижение производительности при разборе 100правила в файле htaccess, особенно если частота совпадений теперь мала. Если ваши текущие URI не начинаются с / News, то хороший прием - переместить все эти перенаправления в DOCROOT/News/.htaccess, так как это будет проанализировано только для URI./ News / .... и, следовательно, вне любого другого пути URI.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...