oyv*_*vey 12 .htaccess mod-rewrite redirect
这是我的.htaccess文件:
Options +FollowSymlinks
RewriteEngine on
Rewritecond %{http_host} ^mysite.com [nc]
Rewriterule ^(.*)$ http://www.mysite.com/$1 [r=301,nc]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /404.php
Run Code Online (Sandbox Code Playgroud)
第一个重写/重写块是将用户重定向到www,如果他们输入的地址没有www.
第二个rewritecond/rewriterule块用于将用户重定向到我创建的页面,如果他们输入不存在的地址.
这些规则中的每一个都是独立运作的:
如果我的.htaccess文件只包含第一个块,则它会成功将非www地址重定向到www地址.
如果输入了不存在的地址,则用户成功重定向到我的页面404.php.
但是,如果.htaccess文件包含两个块,并且输入了非www地址,则会发生以下情况,而不是成功重定向到www地址:
(1)页面上显示以下内容:
永久移动
该文件已移至此处.
此外,尝试使用ErrorDocument处理请求时遇到500内部服务器错误错误.
mysite.com端口80的Apache/1.3.41服务器
(2)在错误日志中生成以下条目:
[2012年5月4日星期五01:54:19] [错误] [客户端109.109.109.109] mod_rewrite:达到的内部重定向的最大数量.假设配置错误.如有必要,使用"RewriteOptions MaxRedirects"增加限制.
我假设发生的是无限循环以某种方式生成.
我想知道如果第一个条件得到满足,是否告诉.htaccess文件停止处理命令可以解决问题.那么有谁知道如何做到这一点?
(旁注.总的来说,我发现.htaccess上的文档绝对是可怕的.我想知道是否有其他人感觉相似.)
提前致谢.
mat*_*ser 15
[L]标志.
http://httpd.apache.org/docs/2.4/rewrite/flags.html
| 归档时间: |
|
| 查看次数: |
32100 次 |
| 最近记录: |