0

我有这样的规则:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^/show_video.php?id=[a-zA-Z0-9_-]+/(.*)$ /video/$1 [R]
</IfModule>

我想重定向:http ://www.domain.com/show_video.php?id=8 到 http://www.domain.com/video/8/

服务器上不存在 show_video.php。

我怎么做?我的规则不起作用。

4

2 回答 2

2

您需要检查QUERY_STRING重写条件,这是一个可能可行的示例:

RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule ^show_video\.php$ /video/%1? [R=302,L] 
于 2012-09-07T07:23:05.190 回答
1

RewriteCond您需要使用 a和%{QUERY_STRING}变量来匹配查询字符串,然后使用%1来反向引用匹配:

RewriteCond %{QUERY_STRING} ^id=([a-zA-Z0-9_-]+)$
RewriteRule ^/?show_video.php$ /video/%1/? [R,L]
于 2012-09-07T07:17:24.697 回答