Как выполнить 301 редирект, например: подкаталог /Blog/
на /blog/
с .htaccess?
301 перенаправление .htaccess
Ответы (3)
Redirect 301 /Blog /blog
Или используйте что-то вроде http://www.htaccessredirect.net/index.php
person
Sam Plus Plus
schedule
27.10.2010
Сразу приходит в голову способ:
RewriteEngine on
RewriteBase /path/to/your/web/app
RewriteRule ^Blog$ blog [R=301,L]
RewriteRule ^Blog/(.*)$ blog/$1 [R=301,L]
Вероятно, есть намного лучшие способы, чем mod_rewrite, и я не уверен на 100%, что внешние перенаправления будут работать должным образом - вам может понадобиться полный URL-адрес - но готово.
person
Andrew
schedule
27.10.2010
Это простейшее решение для .htaccess, поместите его в /.htaccess:
Redirect 301 /Blog /blog
Но это действительно ограничено. Если вы хотите поймать все возможные ошибки в написании CaSe, а также переслать любую другую информацию о пути (например, /Blog/foo/bar.html), используйте вместо этого:
RedirectMatch 301 ^/[Bb][Ll][Oo][Gg](?<!blog)(/.*)?$ /blog$1
Дополнительные параметры доступны в полных генераторах файлов .htaccess.
Или вы можете использовать правила на основе ModRewrite для максимальной гибкости, но это, вероятно, излишне.
person
Jay Dansand
schedule
27.10.2010
Ваш второй пример также будет соответствовать
/blog
в любой позиции.
- person Gumbo; 28.10.2010
Очень правильно - я поспешил нажать на кнопку «Добавить ответ». Спасибо, что указали на это! REGEX теперь исправлен.
- person Jay Dansand; 28.10.2010
Да, действительно, этот вариант лучше, чем всегда знаменитый: некоторые люди, столкнувшись с проблемой, думают, что я знаю, что я буду использовать регулярные выражения. Теперь у них две проблемы.
- person Necronet; 28.10.2010