0

我正在尝试修改一个 htaccess 文件,以便它为搜索表单提供一个不错的 url。

RewriteRule ^search/([a-zA-Z0-9]+)$ look.php?q=$1 [nc]
RewriteRule ^search/?q=([a-zA-Z0-9]+)$ look.php?q=$1 [nc]
RewriteRule ^search/?q=([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ look.php?s=$1&q=$2 [nc]

如果单击搜索按钮,则 url 返回/search/?q=tom-- 不返回任何内容

如果我输入/search/tomurl - 它返回与 tom 匹配的结果

如果单击搜索按钮,则 url 返回/search/?q=tom+jerry-- 不返回错误的结果,因为如果我这样做look.php?s=tom+jerry,它会返回正确的结果..

我的目标是这个/search/?q=tom/search/?q=tom+jerry

4

1 回答 1

2

您必须使用%{QUERY_STRING}来匹配查询字符串 - 它不会在 RewriteRule 中匹配。

所以你会用这样的东西替换你的第二条规则:

RewriteCond %{QUERY_STRING} ^q=([a-zA-Z0-9]+)$
RewriteRule ^search/ look.php?q=%1 [L,NC]

而且我不明白你的第三条规则,所以我不会尝试修复它。

于 2012-05-26T23:50:09.143 回答