我已经尝试了所有规则的庄园,只是可以解决这个问题。如果有人可以解决这个问题?
我需要转过来
http://localhost/search/?terms=foobar
进入这个
http://localhost/index.php?m=search&terms=foobar
“foobar”实际上是([^ /] *),即可以是任何东西,它是一个搜索字符串。 初始网址为“?”因为HTML表单的GET方法。虽然没有那个“?”会更容易。这不是可以做的事情吗?
我试过以下但没有运气。
#RewriteRule ^search/\?terms\=([^/]*)$ index.php?m=search&terms=$1 [L]
感谢。
答案 0 :(得分:0)
对于查询字符串,您需要使用%{QUERY_STRING}
:
RewriteCond %{QUERY_STRING} ^terms=(.*)$ [NC]
RewriteRule ^search/?$ index.php?m=search&terms=%1 [NC,L]
答案 1 :(得分:0)
您无法在RewriteRule中匹配QUERY_STRING。你的代码是这样的:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^(.+)$
RewriteRule ^(search)/?$ index.php?m=$1 [L,NC,QSA]
由于QSA
标记%{QUERY_STRING}
会自动转移到新网址。