apache mod_rewrite不存在的文件

时间:2012-09-07 06:52:14

标签: apache mod-rewrite

我有这样的规则:

<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=8http://www.domain.com/video/8/

show_video.php在服务器上不存在。

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

2 个答案:

答案 0 :(得分:2)

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

RewriteCond %{QUERY_STRING} ^id=([0-9]*)$
RewriteRule ^show_video\.php$ /video/%1? [R=302,L] 

答案 1 :(得分:1)

您需要使用RewriteCond%{QUERY_STRING}变量与查询字符串进行匹配,然后使用%1反向引用匹配项:

RewriteCond %{QUERY_STRING} ^id=([a-zA-Z0-9_-]+)$
RewriteRule ^/?show_video.php$ /video/%1/? [R,L]