.htaccess 如何使用htaccess删除url的一部分

.htaccess 如何使用htaccess删除url的一部分,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,由于未在位置中添加http://前缀,我的url包含断开的链接。如何使用mod_rewrite替换此选项: http://website.com/www.websitelink.com 你应该去这里: http://www.websitelink.com 换句话说,如果路径是/www.websitelink.com(^是字符串的开头,$是字符串的结尾;在正则表达式中,点是一个字符的通配符,必须转义) (而且,[NC]匹配不区分大小写-/WwW.webSiteLink.COM也会匹配) [R=

由于未在位置中添加http://前缀,我的url包含断开的链接。如何使用mod_rewrite替换此选项:

http://website.com/www.websitelink.com
你应该去这里:

http://www.websitelink.com
换句话说,如果路径是/www.websitelink.com(
^
是字符串的开头,
$
是字符串的结尾;在正则表达式中,点是一个字符的通配符,必须转义)
(而且,
[NC]
匹配不区分大小写-/WwW.webSiteLink.COM也会匹配)

[R=301]
重定向状态为“301(永久移动)”

[L]
离开处理(不再处理重写规则)

请注意,无论站点的域是什么,这都将起作用(例如,对于和)

如果要匹配以域结尾的所有路径,请删除起始路径
^

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]
如前所述,这与“路径中的域”之后的路径不匹配;这应该与尾随路径匹配:

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]

在stackoverflow上搜索htaccess。有人已经回答了这个问题。修复有问题的链接不是更好吗?或者它们超出了您的控制范围?不幸的是,这些链接超出了我的控制范围…如果您想将包含域名的所有流量替换为文件夹,而不仅仅是主页,请使用:
RewriteRule^www\.websitelink\.com/(*)$http://www.websitelink.com/$1[R=301,常闭,长]
捕获域名背后的所有内容,并将$1插入正确的URL。这似乎对我不起作用:有些URL没有www.prefix,即:@Litso:完全正确。你想把它作为你自己的答案发布,还是我把它编辑到我的答案中?@InnateDev:如果他们没有前缀,当然他们不会匹配包含前缀的模式。这和你的问题有点不同;编辑了我的答案。@piskvor将其添加到您的答案中;)
RewriteRule ([a-z0-9.-]+\.)?([a-z0-9.-]+)\.com/(.*)$ http://www.$1.com/$2 [R=301,NC,L]