.htaccess 解释了htaccess对通配符子域的重写
亲爱的社区。 今天我制定了这个.htaccess重写规则(在互联网上找到了一些,自己添加了一些) 当我请求some.site.ru时,会触发site.ru/some.php内容。很好。当我请求some.site.ru/readme.txt时,我会看到site.ru/readme.txt内容。我不太明白为什么它工作得很好。 我认为.htaccess 解释了htaccess对通配符子域的重写,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,亲爱的社区。 今天我制定了这个.htaccess重写规则(在互联网上找到了一些,自己添加了一些) 当我请求some.site.ru时,会触发site.ru/some.php内容。很好。当我请求some.site.ru/readme.txt时,我会看到site.ru/readme.txt内容。我不太明白为什么它工作得很好。 我认为RewriteRule^%1.php使所有请求都通过*.php文件。我错了吗 此外,我无法理解重写规则^这一部分。这与重写规则^(.*)$相同吗?这是您的规则: Rewr
RewriteRule^%1.php
使所有请求都通过*.php文件。我错了吗
此外,我无法理解重写规则^
这一部分。这与重写规则^(.*)$
相同吗?这是您的规则:
RewriteCond%{HTTP\u HOST}^www.[NC]
RewriteCond%{HTTP_HOST}^(.*).site.com/(.*)$
重写规则^1.php
由于在RewriteCond%{HTTP_HOST}
前面存在错误模式,这是一个不做任何事规则,换句话说,由于在第二种情况下存在/
,该规则将永远不会执行,因为%{HTTP_HOST}
只匹配web请求的主机名部分,因此该规则永远不会为真。因此,%{HTTP_HOST}
只能匹配www.example.ru
或example.ru
所以很明显,
/readme.txt
URL在没有任何重写的情况下运行良好。哇,有很多需要解释的地方。所以,正是这种错误,使一个恶作剧毕竟笑。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.* [NC]
RewriteCond %{HTTP_HOST} ^(.*).site.com/(.*)$
RewriteRule ^ %1.php