Mod_rewrite rewrite example.com/page.php?v1=abc&v2=def to example.com/abc/def

时间:2013-01-16 16:32:10

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

使用Apache的{​​{1}}文件,我正在尝试htaccess网址rewritehttp://example.com/page.php?v1=abc&v2=def

到目前为止,我有:

http://example.com/abc/def

但这似乎只是提供了实际文件Options +FollowSymLinks RewriteEngine on RewriteRule case-study/(.*)/(.*)/(.*)/(.*)/$ /case-study.php?$1=$2&$3=$4 ,其URL保持不变。

有谁知道这样做的正确方法是什么,或者上面可能出现什么问题?

1 个答案:

答案 0 :(得分:3)

你倒退了。你要改写的是第一个,然后你要改变它到最后。以下可能不准确,但应该接近您的需要:

RewriteCond {%QUERY_STRING} ^v1=(.*)&

RewriteCond {%QUERY_STRING} v2=(.*)$

RewriteRule case-study.php /case-study/%1/%2/

以下是RewriteRule文档以获取更多详细信息:mod_rewrite

请注意,在规则和替换上使用前导斜杠取决于您使用它的上下文(请参阅链接文档)。在上面的示例中,%1和%2引用第一个和第二个RewriteCond中的捕获组。这是一个描述该方法的页面:mod_rewrite based on query string parameters

相关问题