我想要以下网址:
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
元素中都有'dir'。例如,我将鼠标悬停在显示
http://www.mydomain.com/search/myawesomescript.php
。正确的网址是
http://www.mydomain.com/myawesomescript.php
.htaccess文件位于root。为什么'搜索'会将自己插入重写中?什么是我不明白的?
答案 0 :(得分:0)
你的RewriteRule告诉apache如果请求进入搜索/(字符串),它们应该由/dir/search.php处理,但它没有做任何事情来改变显示的URL。
你所谈论的内容将通过以下方式实现:
RewriteRule .* /dir/search.php?param=$1 [NC,L]
请注意,这会将所有内容重定向到search.php,因此您需要修改正则表达式或使用某些RewriteCond
规则来限制范围。