apache mod_将不存在的文件重写为其他文件

apache mod_将不存在的文件重写为其他文件,apache,mod-rewrite,Apache,Mod Rewrite,我有这样的规则: <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^/show_video.php?id=[a-zA-Z0-9_-]+/(.*)$ /video/$1 [R] </IfModule> 重新启动发动机 重写规则^/show_video.php?id=[a-zA-Z0-9_-]+/(.*)$/video/$1[R] 我想重定向: 到 服务器上不存在show_video.php 我该怎么做?我的

我有这样的规则:

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

重新启动发动机
重写规则^/show_video.php?id=[a-zA-Z0-9_-]+/(.*)$/video/$1[R]
我想重定向: 到

服务器上不存在show_video.php


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

您需要使用
RewriteCond
%{query\u string}
变量匹配查询字符串,然后使用
%1
反向引用匹配:

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

您需要使用
RewriteCond
%{query\u string}
变量匹配查询字符串,然后使用
%1
反向引用匹配:

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

您需要在重写条件下检查
QUERY\u字符串
,下面是一个可能有效的示例:

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

您需要在重写条件下检查
QUERY\u字符串
,下面是一个可能有效的示例:

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