【问题标题】:htaccess paramameter with Rewriterule带有 Rewriterule 的 htaccess 参数
【发布时间】:2014-04-15 04:55:41
【问题描述】:

example.com/category/.htaccess

Options +FollowSymLinks
RewriteEngine On
RewriteBase /category/

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]

RewriteRule ^([0-9]+)(?:/[^/]+)?/?$ load.php?cat=$1 [L,QSA]

RewriteRule ^([0-9]+)/[^/]+/[^/]+/([0-9]+)/?$ load.php?cat=$1&p=$2 [L,QSA]

example.com/category/1995/english-videos/page/2 example.com/category/1995/english-videos/page/ 我想 301 重定向到 example.com/category/1995/english-videos 这个网址。怎么做

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    要在 mod_rewrite 中重定向,您需要定义 R 标志。要使其成为永久重定向,您需要将标志设置为 301,如下所示:R=301。您已经设置了 RewriteBase,这很好。您唯一需要做的就是现在匹配 url。在彻底测试重定向并且一切正常后,将下面的标志 R 替换为 R=301。

    RewriteRule ^([0-9]+/[^/]+/)page/?$ $1 [R,L]
    

    【讨论】:

    • 想在哪里添加这个?
    • 在您的情况下,我认为 url 没有与任何其他规则匹配,所以任何地方都应该没问题。我总是在内部重写之前放置重定向,以防止在重定向之前内部重写与我的 url 混淆,所以将其放在 RewriteBase 和其他规则之上。
    • 默认情况下,它是一个临时 (302) 重定向。这样做的好处是它不会被浏览器缓存,所以如果你打错了,你可以简单地修复它并刷新页面,而不是需要清除浏览器缓存。要使其永久化,您需要替换答案中指出的标志。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-28
    • 2017-03-22
    • 2014-08-16
    • 1970-01-01
    • 2020-05-02
    相关资源
    最近更新 更多