【问题标题】:How do I rewrite this URL for .htaccess?如何为 .htaccess 重写此 URL?
【发布时间】:2019-02-24 12:10:43
【问题描述】:

我有许多标签 URL 需要更改为新的域永久链接结构。

我需要一些关于我的 .htaccess 文件的重写规则的帮助。

旧网址:

domain.com/tags/TAGNAME.html

新网址:

domain.com/tags/TAGNAME/

TAGNAME 分别在哪里发生变化。

任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    大概这应该是外部重定向,而不是 URL 重写,正如您的问题所暗示的那样?从旧网址重定向到新网址?

    例如,在文档根目录中 .htaccess 文件的顶部,使用 mod_rewrite 尝试以下操作:

    RewriteEngine On
    RewriteRule ^tags/([\w-]+)\.html$ /tags/$1/ [R=302,L]
    

    只有在您确认这可以正常工作后,才将 302(临时)状态更改为 301(如果这是有意的话)。

    这假设您的 TAGNAME 仅包含字符 a-zA-Z0-9_-

    或者,如果/tags 是一个物理目录,那么您可以创建一个/tags/.htaccess 文件并改用以下内容:

    RewriteEngine On
    RewriteRule ^([\w-]+)\.html$ /tags/$1/ [R=302,L]
    

    【讨论】:

    • 是的!做到了。我采用了您的第一个选项,并使用尾部正斜杠对其进行了修改,并且效果很好。我认为您的解决方案比提供的另一个解决方案更有效,因为您在开始时保留了标签/,因此它不会干扰我的其他重写规则。谢谢!
    • 啊,是的,我在答案中添加了斜杠(对不起,错过了!)。另一个答案最初将 oldnew URL 颠倒了,但它也是“重写”(正如您在问题中提示的那样),而不是“重定向” - 所以它不会“更正”网址。
    • 当我写我的问题时,当我确实在寻找重定向时,我没有考虑过我的选择 - 重写与重定向。在我未来的问题中,我会更加清楚。谢谢你,非常感谢你的帮助。
    【解决方案2】:

    这应该可以解决问题:

    Options +FollowSymLinks
    RewriteEngine On
    RewriteRule ^(.*)\.html$ /$1
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    • 2016-11-28
    相关资源
    最近更新 更多