0

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

我需要转这个

http://localhost/search/?terms=foobar

进入这个

http://localhost/index.php?m=search&terms=foobar

其中“foobar”实际上是 ([^/]*),即可以是任何东西,它是一个搜索字符串。初始 URL 有一个“?” 由于 HTML 表单的 GET 方法。虽然没有那个“?”会更容易。这不是可以做的事情吗?

我试过以下没有运气。

#RewriteRule ^search/\?terms\=([^/]*)$ index.php?m=search&terms=$1 [L]

谢谢。

4

2 回答 2

0

对于查询字符串,您需要使用%{QUERY_STRING}

RewriteCond %{QUERY_STRING} ^terms=(.*)$ [NC]
RewriteRule ^search/?$ index.php?m=search&terms=%1 [NC,L]
于 2013-08-26T16:29:30.410 回答
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]

因为QSAflag%{QUERY_STRING}会自动转移到新的 URL。

于 2013-08-26T16:30:04.633 回答