可能有人向我解释这个mod_rewrite的Apache吗?

时间:2014-06-05 15:46:57

标签: php apache mod-rewrite

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.test\.com$ [NC]
RewriteRule (.*) https://www.test.com/$1 [R=301, L]

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

但我无法理解第3行。我们如何在.net使用第3行中的'(。*)'后捕获下一部分? (.*)不应该在第二行吗?

感谢。

2 个答案:

答案 0 :(得分:1)

请参阅the documentation

RewriteRule Pattern Substitution [flags]

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

  

匹配什么?

     

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

     

在Directory和htaccess上下文中,Pattern最初会是   删除前缀后,与文件系统路径匹配   将服务器引导到当前的RewriteRule(例如“app1 / index.html”或   “index.html”取决于定义指令的位置。

答案 1 :(得分:1)

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

同样不是条件,你不应该在www之后有.,应该只是!^www\.test\.com$