【问题标题】:How to add redirect in htaccess for all urls not cotaining specific string?如何在 htaccess 中为所有不包含特定字符串的 url 添加重定向?
【发布时间】:2014-04-12 08:20:32
【问题描述】:

我的 wordpress 博客遇到了一些 htaccess 问题。我以前的网址类似于

文章名称.html

现在我将结构更改为

博客/文章名称.html

但我在其他各种网站上分享的旧网址仍然收到 404。我尝试在 htaccess 中添加规则,也尝试了“重定向”插件但没有成功:

我在 .htaccess 中尝试过:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^((?!blog/).)*.html$ - /blog/$1.html [L]
</IfModule>

【问题讨论】:

    标签: .htaccess mod-rewrite redirect wordpress


    【解决方案1】:

    你的正则表达式似乎有问题,试试这个:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^((?!blog/).+?\.html)$ /blog/$1 [L,R=301,NC]
    

    【讨论】:

    • 永远不要在那里测试它,它不是可靠的站点。在本地测试它。顺便说一句,我在发布之前已经测试过这个规则。任何 ir 将 anything.html 重定向到 /blog/anything.html 确保这是您的第一条规则
    【解决方案2】:

    更改RewiteBase

    但是您的 .htaccess 不是原始 WordPress .htaccess。为什么不使用它?

    【讨论】:

    • 我将这个添加到原始 .htaccess 的末尾
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-25
    相关资源
    最近更新 更多