0

使用Apachehtaccess文件,我正在尝试rewrite将 URLhttp://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

但这似乎只是提供page.phpURL 不变的实际文件。

有谁知道这样做的正确方法或上述可能有什么问题?

4

1 回答 1

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

于 2013-01-16T16:40:39.817 回答