使用.htaccess重定向Mod_Rewrite URL

时间:2015-07-24 09:20:59

标签: regex apache .htaccess mod-rewrite redirect

我重新设计了一个网站,以摆脱旧的丑陋网址格式。旧的URL使用了mod_rewrite,所以我希望能够重定向这些网址,这样如果用户点击互联网上的某个链接到旧网址,它就会重定向到新网页。

帖子的旧网址看起来像这样

  

http://website.com/viewpost/123/review/review-title-slug.html

新网址将如下所示

  

http://website.com/review-title-slug

旧的mod重写规则看起来像这样。

RewriteRule ^viewpost/([^/]*)/([^/]*)/([^/]*)\.html$ /viewpost.php?ID=$1&type=$2&Title=$3 [L]

我在想我可以添加以下规则,但仍然可以捕获旧网址,但我无法让它工作。即使它确实有效,也不会重定向。我想要它,所以如果用户访问旧网址,它将重定向到新网址。

RewriteRule ^viewpost/([^/]*)/([^/]*)/([^/]*)\.html$ /$3 [L]

1 个答案:

答案 0 :(得分:1)

您可以在旧网站的根.htaccess中使用此规则:

RewriteEngine On

RewriteRule ^viewpost/[^/]+/[^/]+/([^/]+)\.html$ /$1 [L,NC,R=301]

# comment out this older rule
# RewriteRule ^viewpost/([^/]*)/([^/]*)/([^/]*)\.html$ viewpost.php?ID=$1&type=$2&Title=$3 [L]