用www重定向在它面前不工作?

时间:2012-03-14 17:51:55

标签: mod-rewrite redirect url-rewriting

我有以下规则将“example2.test.com”页面重定向到“www.example2.test.com/index.shtml”---即它将index.shtml附加到它

RewriteEngine On RewriteCond%{HTTP_HOST} ^ example2.test.com $
RewriteRule(。*)http://www.example2.test.com/index.shtml [R,L]

如果我更改规则以尝试捕获用户是否按照以下方式输入 www .example2.test.com,则会收到错误消息,告知我重定向过多

RewriteEngine On RewriteCond%{HTTP_HOST} ^ www.example2.test.com $
RewriteRule(。*)http://www.example2.test.com/index.shtml [R,L]

我有什么东西在这里? - 对我来说有点新......

...谢谢

1 个答案:

答案 0 :(得分:1)

RewriteCond基本上是一个if语句,默认情况下服务器会尝试访问索引页面,所以你的第二个例子是

if uri is   www.example2.test.com
redirect to www.example2.test.com

你正在创建一个无限循环,因为一旦它被重定向,它就会被重新评估,从而重定向它。

如果您在访问该网址时未收到index.shtml页,则可能需要将index.shtml添加到您的apache directory index。所以打开你的httpd.conf并找到它所说的内容

DirectoryIndex index.html

并向其添加index.shtml,如果它尚未存在,那么您最终会使用

DirectoryIndex index.html index.shtml