【问题标题】:.htaccess - stop processing if rewriterule true?.htaccess - 如果 rewriterule 为真,则停止处理?
【发布时间】:2012-05-13 18:29:10
【问题描述】:

这是我的 .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

第一个 rewritecond / rewriterule 块是如果用户输入的地址没有 www,则将用户重定向到 www。

第二个 rewritecond / rewriterule 块是在用户输入不存在的地址时将用户重定向到我创建的页面。

这些规则中的每一个都是独立的:

如果我的 .htaccess 文件只包含第一个块,那么它成功地将非 www 地址重定向到 www 地址。

如果输入了不存在的地址,则用户成功重定向到我的页面404.php。

但是,如果 .htaccess 文件包含这两个块,并且输入了非 www 地址,则不会成功重定向到 www 地址,而是会发生以下情况:

(1)页面显示如下:

永久移动

文档已移至此处。

此外,在尝试使用 ErrorDocument 处理请求时遇到 500 Internal Server Error 错误。

Apache/1.3.41 服务器位于 mysite.com 端口 80

(2) 错误日志中生成以下条目:

[2012 年 5 月 4 日星期五 01:54:19] [错误] [客户端 109.109.109.109] mod_rewrite: 达到内部重定向的最大数量。假设配置错误。如有必要,使用“RewriteOptions MaxRedirects”增加限制。

我假设发生的情况是不知何故生成了无限循环。

我想知道如果满足第一个条件,是否告诉 .htaccess 文件停止处理命令会解决问题。那么有人知道怎么做吗?

(旁注。总的来说,我发现 .htaccess 上的文档非常可怕。我想知道是否其他人也有类似的感觉。)

提前致谢。

【问题讨论】:

    标签: .htaccess mod-rewrite redirect


    【解决方案1】:

    【讨论】:

    • 我听取了您的建议,因此对我的文件的唯一更改是第一个重写规则具有以下内容:Rewriterule ^(.*)$ http://www.mysite.com/$1 [r=301,nc,L] 现在一切似乎都正常工作。谢谢。
    • 无需重新迭代网站。并且:Apache RewriteRules 默认是贪婪的。 ☞RewriteRule (.*) $1 [R=404,L]
    【解决方案2】:

    你可以试试这个代码吗:

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /
    
    ErrorDocument 404 404.php
    
    Rewritecond %{HTTP_HOST} ^mysite\.com$ [NC]
    Rewriterule ^ http://www.mysite.com%{REQUEST_URI} [R=302,NC,L]
    

    一旦您确认它工作正常,然后您将 R=302 更改为 R=301

    【讨论】:

    • 谢谢。实际上,我最初是通过 ErrorDocument 处理错误地址的重定向,但如果我没记错的话,它不适用于以 php 结尾的地址,这就是我切换到当前代码的原因。
    【解决方案3】:

    换一行

    重写规则 ^(.*)$ http://www.mysite.com/ [r=301,nc,L,PT]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 2022-01-24
      • 2012-03-21
      • 2020-10-26
      相关资源
      最近更新 更多