htaccess重定向由于某种原因无法正常工作

时间:2016-03-26 09:06:33

标签: php .htaccess

我试图弄清楚这段代码为什么不起作用

旧网址

 news.php?catID=text-from-database&nid=number-from-database

新网址

 news-detail.php?cid=Cat-ID-Number&nid=number-from-database

或新网址

 domain.com/number-from-database

我想使用下面的代码永久重定向。但它没有用。

Redirect 301 ^news.php?catID=([A-Za-z0-9-]+)&nid=([0-9]+) news-detail.php?cid=$1&nid=$2
Redirect 301 ^news.php?catID=([A-Za-z0-9-]+)&nid=([0-9]+) /$1

1 个答案:

答案 0 :(得分:1)

您无法与REDIRECT指令中的查询字符串进行匹配。您需要使用Mod-rewrite匹配%{QUERY_STRING}%{THE_REQUEST}变量:

尝试:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^catID=([A-Za-z0-9-]+)&nid=([0-9]+)$ [NC]
RewriteRule ^ /news-detail.php?cid=%1&nid=%2 [L,R]

或:

RewriteEngine on
RewriteCond %{THE_REQUEST} /news\.php\?catID=([A-Za-z0-9-]+)&nid=([0-9]+) [NC]
RewriteRule ^ /news-detail.php?cid=%2 [L,R]