url重写和移动questionmark

时间:2013-08-26 16:06:25

标签: .htaccess mod-rewrite url-rewriting

我已经尝试了所有规则的庄园,只是可以解决这个问题。如果有人可以解决这个问题?

我需要转过来

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]

感谢。

2 个答案:

答案 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}会自动转移到新网址。