如何限制我的mod_rewrite
RewriteRules仅适用于 www 和 no-subdomain ?
子域名位于不同的文件夹中 - 而不是网站根文件夹,但是我的所有RewirteRules都适用于所有子域名,这不是我想要的。
我知道可以通过仅匹配 www 和 no-subdomain 的RewriteCond匹配每个RewriteRule,但是我必须重复相同的所有RewriteRules的东西,这不是我想要的。
所以我想知道是否有任何方法全局阻止RewriteRules应用于其他子域?我还可以在每个子域中放置.htaccess
个文件,以防止匹配,如果可能的话。
以下是我现在.htaccess
所拥有的内容的一部分:
options -Indexes -MultiViews +FollowSymLinks
Header set Access-Control-Allow-Origin *
RewriteEngine On
RewriteBase /
RewriteRule ^city/([^/].+)/([^/].+)/([^/].+)/$ index.php?page=$3&city=$1 [L]
RewriteRule ^city/([^/].+)/([^/].+)/$ index.php?city=$1 [L]
RewriteRule ^flights/([^/].+)/$ index.php?page=flights&mode=$1 [L]
RewriteRule ^health/([^/].+)/$ index.php?page=health&view=$1 [L]
# so on ...
RewriteRule ^([^/].+)/$ index.php?page=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . index.php [L]
更新#1
只是为了更好地解释问题,现在sub.domain.com
显示domain.com
而不是它的实际内容。
答案 0 :(得分:2)
您可以在RewriteBase
行下方插入此单个规则,以忽略其余规则中的所有子域:
# ignore all sub domains
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteRule ^ - [L]
将example.com
替换为您的实际域名。