2012-01-30 3 views
2

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

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

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] 

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

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

Благодарности капризы

ответ

0

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

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

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

+0

попробовать еще раз .. извините Привет Джон Лин RedirectMatch 301 ^/(Home /?) + $ Http://www.domain.com/ Работы лакомство Однако RedirectMatch 301/[ Cc] alendar \ .asp $ http://www.domain.com/events/ дает смешанные результаты. eg calendar.asp? Event_id = 87 перенаправляет в правильный каталог, однако теперь он сохраняет параметры запроса, например/events /? event_id = 87 calendar.asp? month = 1 & day = 17 & year = 2020 & submit = Показать + на + + Календарь заканчивается с 404 Благодаря Капризы Сори, если этот пост выглядит беспорядок .. не знаю, как изменить его так, что он выглядит правильно .. Извинения –

+0

только для уточнения тоже .. мой «попробовать еще раз» направлена на себя, .. не вы .. мои первые попытки ответить вам пошли грустно, когда я случайно попал в enter, и мне пришлось его удалить .. –

+0

А как я вижу, вы можете добавить **? ** в конце перенаправленный URL-адрес, поэтому строка запроса не будет добавлена, так что это выглядит так: 'http: //www.domain.com/events/?' –