как удалить части url с htaccess - PullRequest
1 голос
/ 26 ноября 2010

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

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

должен идти сюда:

http://www.websitelink.com

1 Ответ

3 голосов
/ 26 ноября 2010
RewriteRule ^www\.websitelink\.com$ http://www.websitelink.com/ [R=301,NC,L]

Другими словами, если ваш путь равен /www.websitelink.com (^ - начало строки, $ - конец строки; в регулярных выражениях точки - один-символы подстановки и должны быть экранированы)
(и совпадение [NC] не чувствительно к регистру - /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 , это не будет совпадать с путем после входа в домен-дорожка";это должно соответствовать конечному пути:

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]
...