.htaccess中有两个相互冲突的重写

时间:2018-01-03 09:13:10

标签: apache .htaccess mod-rewrite url-rewriting

我使用这4行:

RewriteCond %{QUERY_STRING} !marker  
RewriteCond %{QUERY_STRING} id=([0-9]+)
RewriteRule ^/?picture.php$ %1? [R=301,L]
RewriteRule ^/?p([0-9]+)$ picture.php?marker&id=$1 [L]

www.example.com/p4444翻译为www.example.com/picture.php?id=4444,我必须说它完美无瑕。

然后我有:

RewriteRule ^([0-9]+)$ vid.php?vid=$1 [R,NC,L]

可以将www.example.com/7777翻译为www.example.com/picture.php?id=7777

然而,我遇到的问题是,当我使用它们时,第二个不再起作用。

因为这不是一个非常广泛使用的重写,我找不到这些特定两种情况的任何解决方案。

1 个答案:

答案 0 :(得分:1)

检查这是否有效@bombelman

RewriteCond %{QUERY_STRING} !marker  
RewriteCond %{QUERY_STRING} id=([A-Za-z0-9-]+)
RewriteRule ^/?picture.php$ %1? [R=301,L]
RewriteRule ^/?([0-9-]+)$ picture.php?marker&id=$1 [L]