2

我有3个域名:

www.domain1.com
www.domain2.com
www.domain3.com

它们都共享相同的子文件夹 URL:

www.domain1.com/sub1/sub2
www.domain2.com/sub1/sub2
www.domain3.com/sub1/sub2

我需要将 sub2 及其下方的所有内容重定向到该站点的主页:

www.domain1.com/sub1/sub2  --> www.domain1.com
domain1.com/sub1/sub2 --> www.domain1.com


www.domain2.com/sub1/sub2  --> www.domain2.com
domain2.com/sub1/sub2 --> www.domain2.com


www.domain3.com/sub1/sub2  --> www.domain3.com
domain3.com/sub1/sub2 --> www.domain3.com

这是我到目前为止所拥有的:

RewriteCond %{HTTP_HOST} ^domain1\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.domain1\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain2\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.domain2\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain3\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.domain3\.com$ [NC]
RewriteRule ^sub1/sub2(.*)$ / [NC,L,R=301]

问题:
它只适用于www.domain1.com, www.domain2.com, www.domain3.com.

它不适用于没有“www”的 URL。所以不起作用:domain1.com/sub1/sub2

谢谢!

4

1 回答 1

1

你可以试试这个:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?(domain1|domain2|domain3)\.com
RewriteCond %{REQUEST_URI}  ^/sub1/sub2/?  [NC]
RewriteRule .*   http://%{HTTP_HOST}/     [R=301,L]

使用此方案重定向任何 URL

http://www.domain1.com/sub1/sub2或者http://domain1.com/sub1/sub2

到相应的根,删除段/sub1/sub2

我假设/sub1/sub2是固定字符串。如果不是,请更换

RewriteCond %{REQUEST_URI}  ^/sub1/sub2/?  [NC]

RewriteCond %{REQUEST_URI}  ^/[^/]+/[^/]+/?  [NC]

/sub1/sub2/必须保留路径中包含 2 个文件夹的 URL 方案才能使规则生效。

于 2013-01-28T22:40:19.923 回答