Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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
Php 有人能给我解释一下Apache的这种修改吗?_Php_Apache_Mod Rewrite - Fatal编程技术网

Php 有人能给我解释一下Apache的这种修改吗?

Php 有人能给我解释一下Apache的这种修改吗?,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,我得到第一行:RewriteEngine On并得到RewriteCond的正则表达式 但是我很难理解第三行。我们如何在第3行中使用“(.*)”来捕获.net之后的下一部分?(.*)不应该在第二行吗 谢谢。请参阅: 第一个参数,(.*)是模式 什么是匹配的 在VirtualHost上下文中,模式最初将与 URL中位于主机名和端口之后、查询之前的部分 字符串(例如“/app1/index.html”) 在目录和htaccess上下文中,模式最初是 删除前缀后,与文件系统路径匹配 将服务器引导到当前

我得到第一行:
RewriteEngine On
并得到RewriteCond的正则表达式

但是我很难理解第三行。我们如何在第3行中使用“(.*)”来捕获
.net
之后的下一部分?
(.*)
不应该在第二行吗

谢谢。

请参阅:

第一个参数,
(.*)
是模式

什么是匹配的

在VirtualHost上下文中,模式最初将与 URL中位于主机名和端口之后、查询之前的部分 字符串(例如“/app1/index.html”)

在目录和htaccess上下文中,模式最初是 删除前缀后,与文件系统路径匹配 将服务器引导到当前重写规则(例如“app1/index.html”或 “index.html”,具体取决于指令的定义位置)


重写规则的第一个参数与URI相关,
(.*)
表示捕获任何字符串


还有一个不在条件下,你不应该在www之后有首字母
,应该是
^www\.test\.com$

该点是一个错误,已编辑。:)现在,我知道了
(.*)
的意思,但是,就像前面提到的问题一样,第三行中的
(.*)
如何知道第二行中发生了什么?因为重写规则遵循所有先前的重写条件,(.*)部分不知道第二行中发生了什么,它只是匹配URI。为什么要否决Downvoter先生?
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.test\.com$ [NC]
RewriteRule (.*) https://www.test.com/$1 [R=301, L]
RewriteRule Pattern Substitution [flags]