htaccess 301 перенаправляет - PullRequest
2 голосов
/ 30 января 2012

Я новичок htaccess, и я пытаюсь разобраться в беспорядке, оставленном предыдущим веб-мастером веб-сайта.

У меня есть такие экземпляры, как следующие

http://www.domain.com/Home
http://www.domain.com/Home/
http://www.domain.com/Home/Home
http://www.domain.com/Home/Home/
http://www.domain.com/Home/Home/Home
http://www.domain.com/Home/Home/Home/

которые все 301 нужно перенаправить на http://www.domain.com/

следующие работы

RewriteCond %{HTTP_HOST} ^.*$

RewriteRule ^((?=.*[A-Z])(?=.*[a-z]).{4,15}|(?=.*[A-Z])(?=.*[a-z]).{3,15}\/)$ "http\:\/\/www\.domain\.com\/" [R=301,L]

У меня также есть экземпляры, такие как:

http://www.domain.com/calendar.asp
http://www.domain.com/Calendar.asp
http://www.domain.com/calendar.asp?foo=123&bar=456&foobar=123456
http://www.domain.com/Home/calendar.asp?foo=123&bar=456&foobar=123456
http://www.domain.com/Home/Home/Home/Calendar.asp
http://www.domain.com/Home/Home/calendar.asp
http://www.domain.com/Home/Home/Home/calendar.asp?foo=123&bar=456&foobar=123456

и т. Д.

который все 301 нужно перенаправить на http://www.domain.com/events/

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

RewriteCond %{HTTP_HOST} ^.*$

RewriteRule ^calendar\.asp$ "http\:\/\/www\.domain\.com\/events\/?" [R=301,NC,L]


RewriteCond %{HTTP_HOST} ^.*$

RewriteRule ^((?=.*[A-Z])(?=.*[a-z]).{4,50})\/[cC]alendar\.asp$ "http\:\/\/www\.domain\.com\/events\/?" [R=301,L]

но ... я сомневаюсь, что моя попытка сделать это будет считаться оптимальной, и мне будет интересно, как это сделать, в отличие от меня и моих ограниченных знаний, что-то взламывая вместе.

Любая помощь приветствуется

Спасибо Капризы

1 Ответ

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

Вы можете просто использовать RedirectMatch для обоих:

RedirectMatch 301 ^/(Home/?)+$ http://www.domain.com/
RedirectMatch 301 /[Cc]alendar\.asp$ http://www.domain.com/events/

В случае «Home» регулярное выражение соответствует любому числу / Home / и в экземпляре календаря,вы только проверяете, заканчивается ли он на Calendar.asp или calendar.asp.

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