2013-04-18 92 views
1

我目前使用的CMS重写所有的网址,目前我有一个这样的URL:的.htaccess重定向URL包含原始的PHP URL变量

http://www.domain.com/folder/?user=user1 

我期待有一个重写:index.php?r=search&term=$1

会这样的工作?

RewriteRule ^/?user=(.*) index.php?r=search&term=$1 [L] 

似乎给我带来麻烦。有什么建议么?

+0

http://perishablepress.com/stupid-htaccess-tricks/这或许可以帮助你。 – diEcho 2013-04-18 04:38:26

回答

1

查询字符串不是URI道测试它在规则的一部分。它位于QUERY_STRING变量中。

你可以试试这个:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{QUERY_STRING} user=([^/]+)/? [NC] 
RewriteRule ^folder/? /index.php?r=search&term=%1 [L,NC] 
+0

这是什么'[^ /]'?你的意思是'[^&]'? – 2013-04-18 06:36:03

+0

@Olaf好问题。我也对此有所怀疑,但假设查询字符串与描述一样,并最终可能以斜杠结尾,如“http://www.domain.com/folder/?user = user1 /'。如果手动输入,可能会发生这种情况。正如你所说,如果有更多的键值对,可以使用'&'。虽然似乎并不存在。 – 2013-04-18 06:49:21

0

尝试(未测试)

RewriteEngine On 
Options +FollowSymLinks 
RewriteRule ^folder1/?user=(.*)$ index.php?r=search&term=$1 [R=301,L]