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]