【问题标题】:Too many redirects. How to redirect to a another level重定向太多。如何重定向到另一个级别
【发布时间】:2016-08-16 06:46:56
【问题描述】:

我在 .htaccess 中有这个:

RewriteEngine on
RewriteRule 41-advent /escrits/41-advent [L,R=301]

如果我去 myDomain/41-advent

Safari 说:“尝试打开 myDomain/41-advent 时发生了太多重定向。如果您打开一个被重定向到打开另一个页面的页面,然后又被重定向到打开原始页面,则可能会发生这种情况。”

Chrome 说:myDomain.org 重定向太多次

我坚持要删除 .htaccess 中的所有其他代码。我只有上面的两行。

什么是正确的重定向方式?:
来自 myDomain.com/41-advent
至:myDomain.com/escrits/41-advent

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    是的,您的正则表达式会导致重定向循环,因为您没有使用锚点。

    用途:

    RewriteEngine on
    
    RewriteRule ^41-advent/?$ /escrits/41-advent [L,R=301,NC]
    

    现在它将匹配 myDomain.com/41-advent 但不匹配 myDomain.com/escrits/41-advent

    【讨论】:

    • 我明白,很好的答案。只是一个疑问:如果搜索不以“/”开头,为什么替换必须以“/”开头?
    • 是的,.htaccess 就是这样。 .htaccess 是每个目录指令,Apache 从 RewriteRule URI 模式中去除当前目录路径(因此是前导斜杠)。
    • 对不起,我不明白。我是初学者。请再试一次好吗
    • htaccess 可以放在DocumentRoot 下的任何子目录中。使用 RewriteRule 时,它匹配该目录的相对路径。因此,如果 htaccess 在 DocumentRoot 中,即 /,那么它会在第一个 / 之后开始匹配
    猜你喜欢
    • 2021-03-31
    • 2021-03-25
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多