【问题标题】:URL rewrite not working for one URLURL 重写不适用于一个 URL
【发布时间】:2012-10-05 15:56:37
【问题描述】:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteRule ^foo$ /bar [L,R=301]

</IfModule>

# END WordPress

这些行适用于 wordpress,但是当我打开 www.example.com/foo 时 RewriteRule ^foo$ /bar [L,R=301] 没有重定向

【问题讨论】:

    标签: wordpress apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    您是否尝试过将该特定规则放在RewriteBase / 规则的下方?我认为其他规则已经在做一些事情,导致您的最后一个规则被忽略。

    【讨论】:

    • 这有帮助。但再次(抱歉)RewriteRule ^foo/test$ /bar [L,R=301] 没有重定向,我有名为 'foo' 的文件夹但没有测试。
    【解决方案2】:

    RewriteRule 的顺序很重要 在 .htaccess 中。将您的 .htaccess 代码更改为:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    
    RewriteRule ^foo/?$ /bar [L,R=301]
    
    RewriteRule ^index\.php$ - [L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    </IfModule>
    # END WordPress
    

    【讨论】:

    • 这有帮助。但再次(抱歉)RewriteRule ^foo/test$ /bar [L,R=301] 没有重定向,我有名为 'foo' 的文件夹但没有测试。
    • 所以你有 RewriteRule ^foo/test$ /bar [L,R=301] 我想知道这是否是你唯一的 .htaccess 以及你在浏览器中输入的 URI 吗?
    • 用那个代替RewriteRule ^foo/?$ /bar [L,R=301],URL是www.example.com/foo/test
    • 您能否告诉我您的系统上是否还有其他 .htaccess 文件?如果没有,那么您可以为此请求复制/粘贴您的 access.log 和 error.log sn-p。
    • 日志中没有任何内容,因为从 wordress 显示“找不到页面”。没有其他 htaccess。
    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 2016-01-02
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 2019-09-04
    • 2013-09-18
    • 1970-01-01
    相关资源
    最近更新 更多