mod_rewrite子域与子文件夹组合的重定向

时间:2011-09-20 21:10:52

标签: .htaccess mod-rewrite

我的.htaccess中有这个代码来处理子域名(http://foo.mydomain.com)

RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC]
RewriteRule ^(.*)$ filter.php?type=country&country=%1 [L]

问题是我需要做什么,例如有人提出这样的链接:

http://foo.mydomain.com/bar

我想将此重定向到与上一代码中的filter.php(例如otherpage.php)不同的另一个页面,我尝试了下一个代码,但它无法正常工作

RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com/([^/]+) [NC]
RewriteRule ^(.*)$ otherpage.php?type=country&country=%1 [L]

下一个都不是:

RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC]
RewriteCond %{REQUEST_URI} ^/([^/]+)
RewriteRule ^(.*)$ otherpage.php?pname=$1 [L]

链接始终使用我编写的第一条规则解决。

1 个答案:

答案 0 :(得分:0)

向您的第一个组中添加一个检查空REQUEST_FILENAME的条件。当存在除了裸域名之外的其他内容时,这将阻止它匹配。

RewriteCond %{HTTP_HOST} !^www.mydomain.com
RewriteCond %{HTTP_HOST} ([^.]+).mydomain.com [NC]
RewriteCond %{REQUEST_FILENAME} ^/?$
RewriteRule ^(.*)$ filter.php?type=country&country=%1 [L]