【问题标题】:Mod_rewrite - redirecting an already rewritten urlMod_rewrite - 重定向已经重写的 url
【发布时间】:2015-02-18 06:57:36
【问题描述】:

我以前用这种方式重写了文章的 URL:

RewriteRule ^([^/\.]+)/([^/\.]+)/?article_(.*)_(.*).html$ index.php?sectionpp=$1&sectionpp2=$2&content=article&artid=$3&curbigart=$4 [L]

这产生了如下网址: http://www.domain.com/Entertainment/114194/VINYETTE-TO-RELEASE-DEBUT-ALBUM-ON-MAY-7-2013

但是,现在我重新设计了网站并缩短了网址:

RewriteRule ^([^/\.]+)/([^/\.]+)$ index.php?sectionpp=$1&content=article&artid=$2&curbigart=$3 [L]

产生如下网址: http://www.domain.com/Entertainment/114194

问题: 是否可以重定向已经重写的url http://domain.com/Entertainment/114194/VINYETTE-TO-RELEASE-DEBUT-ALBUM-ON-MAY-7-2013

http://domain.com/Entertainment/114194

显然我们不是在谈论单页,而是数千页,所以需要 .htaccess 中的一行好,呵呵。我知道我可以简单地在 php 中重定向,但我认为在 .htaccess 中也必须有办法做到这一点?

谢谢!

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite redirect


    【解决方案1】:

    是否可以重定向已经重写的urldomain.com/Entertainment/114194/VINYETTE-TO-RELEASE-DEBUT-ALBUM-ON-MAY-7-2013domain.com/Entertainment/114194

    您可以将规则用作根 .htaccess 中的第一条规则:

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([\w-]+/\d+)/.+$ /$1 [L,R=302]
    

    【讨论】:

    • 谢谢!那几乎就在那里。它现在适用于娱乐类别。但娱乐实际上也是一个变量。您将如何更改它以使其也能正常工作?
    • 非常感谢!非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 2011-04-14
    • 1970-01-01
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多