我的.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]
问题是我需要做什么,例如有人提出这样的链接:
我想将此重定向到与上一代码中的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]
链接始终使用我编写的第一条规则解决。
答案 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]