Htaccess会忽略某些子域名,导致重定向无法按预期工作

时间:2017-08-03 16:32:54

标签: apache .htaccess redirect mod-rewrite

首先,这两种方法有什么不同,哪种方法更好?

#method 1
#RewriteCond %{HTTP_HOST} !^(www|catalog|demo|dev|whatever)\.example\.com$ [NC]
#RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-.]+)\.example\.com [NC]
#RewriteRule ^(.*)$ https://example.com/index/parser.php?%2&domain_name=example.com [QSA,L]

#method 2
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^catalog\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^demo\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^dev\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} !^whatever\.example\.com$ [NC]
RewriteRule ^ https://example.com/index/parser.php?%1&domain_name=example.com [L,R]

这两种方法看起来都是一样的,但是这两种方法也是如此,因此不会忽略其中一个子域。除演示外,所有都被忽略。这就是我想弄清楚的。

对于所有子域名,cpanel,enom和无处不在,所以这个子域名有什么不同?在每个应用程序所在的子目录中都有不同,但没有什么看起来可疑,为什么它不适用于特定的子域。我甚至不认为它到达并阅读子目录。 htaccess规则重定向到解析器而不是忽略子域,因此它转到子目录而不是demo子域。我需要看什么以及在哪里?什么在htaccess?什么在whm?什么在cpanel?在别的什么地方?可能导致这种情况的原因是什么?

0 个答案:

没有答案