解释这个重写规则?

时间:2012-03-15 09:24:14

标签: mod-rewrite redirect rewrite

我已经成功地将这个条件和规则放在一起,以重定向页面,在其末尾包含index.shtml,但我不明白Rewrite的这一部分意味着什么 - ^$部分。我相信^意味着开始,$已经结束,但在这种情况下,我不理解它在“英语”中的含义及其运作方式:

RewriteCond %{HTTP_HOST} ^www\.example1\.test\.com [NC]  
RewriteRule ^$ http://www.example1.test.com/index.shtml [R,L]

感谢。

2 个答案:

答案 0 :(得分:2)

^是字符串的开头,$是结尾。如果两者之间没有任何内容,例如^$,则表示空字符串。由于忽略了导致当前目录的路径,因此匹配的URL部分是之后的 http://www.example1.test.com/。在之后匹配“空字符串”意味着匹配URL本身,如:没有文件或任何其他指定。因此,这会将根URL重定向到index.shtml

答案 1 :(得分:1)

如果用户访问了确切的网址www.example1.test.com,则他或她会被重定向到http://www.example1.test.com/index.shtml

有用的工具:http://martinmelin.se/rewrite-rule-tester/