2010-11-26 5 views
1

Мой url содержит неработающую ссылку из-за того, что префикс http: // не добавляется в местах. Как бы я заменить это с помощью mod_rewrite:Как удалить часть URL-адреса с htaccess

http://website.com/www.websitelink.com 

должен идти здесь:

http://www.websitelink.com 
+0

поиска HTAccess на StackOverflow. Кто-то уже ответит на это. – 2010-11-26 11:38:27

+0

Не лучше ли исправить оскорбительные ссылки? Или они не поддаются контролю? – Piskvor 2010-11-26 11:59:46

ответ

3
RewriteRule ^www\.websitelink\.com$ http://www.websitelink.com/ [R=301,NC,L] 

Другими словами, если ваш путь является /www.websitelink.com (^ это начало string, $ - конец строки, в регулярных выражениях - односимвольные символы и должны быть экранированы)
[NC] соответствие не случай sensiti не ве - /WwW.webSiteLink.COM будет соответствовать, тоже),

[R=301] перенаправлять со статусом "301 (перемещено)"
к http://www.websitelink.com/
и [L] обработка отпуска (не более переписывать правила обрабатываются).

Обратите внимание, что это будет работать независимо от домена сайта (будет работать, например, для http://website.com/www.websitelink.com и http://www.website.com/www.websitelink.com)

Если вы хотите, чтобы соответствовать всем путям, которые заканчиваются с доменом, падением стартового ^:

RewriteRule www\.websitelink\.com$ http://www.websitelink.com/ [R=301,NC,L] 

, и если вы хотите, чтобы соответствовать даже пути без www., сделать это по желанию:

RewriteRule (www\.)?websitelink\.com$ http://www.websitelink.com/ [R=301,NC,L] 

Как отметил @Litso, это не будет соответствовать пути после «domain-in-path»; это должно соответствовать концевому пути:

RewriteRule (www\.)?websitelink\.com/(.*)$ http://www.websitelink.com/$1 [R=301,NC,L] 

Чтобы соответствовать любому субдомену:

RewriteRule ([a-z0-9.-]+\.)?websitelink\.com/(.*)$ http://www.websitelink.com/$1 [R=301,NC,L] 

И чтобы соответствовать любому домену:

RewriteRule ([a-z0-9.-]+\.)?([a-z0-9.-]+)\.com/(.*)$ http://www.$1.com/$2 [R=301,NC,L] 
Смежные вопросы