Mod_rewrite - 重定向已经重写的url

时间:2015-02-18 06:57:37

标签: regex apache .htaccess mod-rewrite redirect

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

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中必须有一种方法可以做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

  

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

您可以在根目录中使用规则作为第一条规则.htaccess:

RewriteEngine On

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