【发布时间】:2016-09-29 11:15:12
【问题描述】:
我的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。然后还有另一个重写查询字符串(所以在后台,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;查询字符串出现在浏览器栏中)。有什么想法吗?
【问题讨论】:
标签: apache .htaccess redirect mod-rewrite