如何强制将特定域名及其所有路径强制到www(特定路径除外),而是将该特定路径重定向到另一个域。所以我想要的是强迫
en.one
以及www.en.one
以外的所有路径en.one/admin
。但最重要的是,我希望被排除的en.one/admin
转到另一个域http://www.en.me
。
到目前为止,我已设法排除en.one/admin
,但我仍未能将en.one/admin
重定向到http://www.en.me
。
我的代码
RewriteEngine on
RewriteCond %{HTTP_HOST} ^en.one$
RewriteCond %{THE_REQUEST} !/admin //This excludes the /admin
RewriteRule (.*) http://www.en.one/$1 [R=301,L]
注意:这是一个多站点,多个域由此单个.htaccess
文件管理,因此解决方案对于特定域名非常重要。
答案 0 :(得分:0)
也许你可以尝试连接几个条件
## Not www include
RewriteCond %{HTTP_HOST} !^www\.(.+) [NC]
## Not admin directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/admin/ [NC]
## then rewrite to www.
RewriteRule ^(.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
## And then redirect your admin
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/admin/(.+) [NC]
RewriteRule ^(.*) http://www.en.me/$1 [R=301,L]
答案 1 :(得分:0)
感谢@Christophe帮助我找到解决方案。您可以在Christophe的答案中查看我们的对话作为评论。解决方案是再次重复HTTP_HOST条件。所以最后我的.htaccess
看起来像这样。
RewriteEngine on
RewriteCond %{HTTP_host} ^en.one$
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/admin
RewriteRule ^(.*) http://www.en.one/$1 [R=301,L]
RewriteCond %{HTTP_host} ^en.one$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^(.*) http://www.en.me/ [R=301,L]
我相信可以有更好的解决方案,但这对我来说就像我想要的那样。