【问题标题】:Circular htaccess rewrite rules循环 htaccess 重写规则
【发布时间】:2012-10-18 01:12:51
【问题描述】:

这似乎正是您想要对 htaccess 重写规则执行的操作。但我似乎无法让它正常工作。

我的网站上有这个页面:http://wireie.gocactus.com/network_extensions.php

我想重命名为:http://wireie.gocactus.com/transparent-ethernet-solutions

所以这是我在我的 htaccess 文件中放入的行:

RewriteRule ^transparent-ethernet-solutions network_extensions\.php [NC]

好的。现在如果我去/transparent-ethernet-solutions,效果很好。

问题在于,/network_extensions.php 仍然可以很好地工作。所以我想用这一行重写那个url:

RewriteRule ^network_extensions\.php*$ /transparent-ethernet-solutions [R,NC]

现在它给了我一个关于太多重定向的错误消息。如果我在没有第一行的情况下添加第二行,它会更改 PHP 链接上的 URL,但在漂亮的链接重定向时会出现“找不到页面”错误。

我的心都碎了。我可以在不转发的情况下重写 URL 并在不从旧 URL 重定向的情况下使新 URL 工作吗?我不确定第一行中是否缺少一些参数,或者一些必要的规则组合。

【问题讨论】:

    标签: .htaccess rewrite


    【解决方案1】:

    这是您的 .htaccess 中需要的代码:

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /
    
    RewriteRule ^transparent-ethernet-solutions/?$ network_extensions.php [NC,L]
    
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+network_extensions\.php\s [NC]
    RewriteRule ^ transparent-ethernet-solutions [R=301,L]
    

    【讨论】:

    • 谢谢,谢谢,谢谢。条件规则绝对是有道理的。我正在玩一个条件,但没有 %{THE_REQUEST} 语法来匹配 URL。你是个脑筋急转弯! :)
    猜你喜欢
    • 2014-08-29
    • 2017-08-16
    • 2011-02-16
    • 2019-09-16
    • 2011-03-08
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多