需要帮助搞清楚.htaccess规则

时间:2011-06-27 20:52:51

标签: .htaccess

我对apache很新,我需要一些.htaccess重写规则的帮助。这是现行规则:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/beta/index\.php$
RewriteRule ^(.*)$ /beta/index\.php [R=302,L] 

基本上它会将任何请求重定向到mydomain.com \ beta \ index.php,除非指定了文件名。这个现在工作正常。

问题在于:

我有一个子域名beta.mydomain.com,我不希望这些规则适用于。 beta.subdomain.com上的任何网址都应该正常处理。但是,由于.htaccess位于服务器根目录,因此它的规则也在使用beta.subdomain.com。

我尝试过很多不同的正则表达式组合,但我无法理解。救命啊!

2 个答案:

答案 0 :(得分:2)

您需要使用类似的内容(检查您的请求是否与特定域/子域相关):

RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com(:80)?$ 

错过了20秒......但我的答案更好;)

答案 1 :(得分:1)

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/beta/index\.php$
RewriteCond %{HTTP_HOST} !^beta\.subdomain\.com 
RewriteRule ^(.*)$ /beta/index\.php [R=302,L]  

这应该做的伎俩!