繁体   English   中英

使用htaccess将所有页面重定向到另一个域

[英]Using htaccess to redirect all pages but one to another domain

我的htaccess如下:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.es$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.es$
RewriteRule ^(.*)$ http://www.domain.com/es [L,R=301]

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?section=$1 [QSA,L]

基本上它的功能是将所有域别名(即domain.mobi)重定向到domain.com,domain.es除外,它将被重定向到domain.com/es。 然后是另一个附加查询字符串的rewriterule(所以在后台,domain.com/test成为domain.com/index.php?section=test)

我的问题是,现在我需要从重定向中排除一个URL(www.domain.es/landing)(因此它保留在domain.es中),我无法使其工作。 我已尝试将此条件添加到前两个规则以排除页面:

RewriteCond %{REQUEST_URI} !^/landing$

但随后它转到www.domain.com/es?section=landing(不仅仍然重定向到domain.com;查询字符串出现在浏览器栏中)。 有任何想法吗?

您可以使用以下规则:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.es$ [NC]
RewriteCond %{THE_REQUEST} !/landing[\s?] [NC]
RewriteRule ^(.*)$ http://www.domain.com/es/$1 [L,R=301]

RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{THE_REQUEST} !/landing[\s?] [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?section=$1 [QSA,L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM