0

我想要以下网址:

http://www.mydomain.com/search/string

要去

http://www.mydomain.com/dir/search.php?param=string

这是我的重写规则:

RewriteRule ^search/(string)$ /dir/search.php?param=$1 [NC,L]

让我抓狂的是它确实有效。结果页面中的所有链接在a元素中都有“目录”。例如,我将鼠标悬停在显示

http://www.mydomain.com/search/myawesomescript.php

在状态栏中。正确的网址是

http://www.mydomain.com/myawesomescript.php

.htaccess 文件位于根目录。为什么“搜索”会将自己插入到重写中?我不明白的是什么?

4

1 回答 1

0

您的 RewriteRule 告诉 apache,如果请求进入搜索/(字符串),它们应该由 /dir/search.php 处理,但它不会做任何事情来更改显示的 URL。

您正在谈论的内容将通过以下方式完成:

RewriteRule .* /dir/search.php?param=$1 [NC,L]

请记住,这会将所有内容重定向到 search.php,因此您需要修改正则表达式或使用一些RewriteCond规则来限制范围。

于 2012-06-16T22:49:34.690 回答