Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 解释了htaccess对通配符子域的重写_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess 解释了htaccess对通配符子域的重写

.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

亲爱的社区。 今天我制定了这个.htaccess重写规则(在互联网上找到了一些,自己添加了一些)

当我请求some.site.ru时,会触发site.ru/some.php内容。很好。当我请求some.site.ru/readme.txt时,我会看到site.ru/readme.txt内容。我不太明白为什么它工作得很好。 我认为
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