我目前使用的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]
似乎给我带来麻烦。有什么建议么?
我目前使用的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]
似乎给我带来麻烦。有什么建议么?
查询字符串不是URI道测试它在规则的一部分。它位于QUERY_STRING变量中。
你可以试试这个:
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase/
RewriteCond %{QUERY_STRING} user=([^/]+)/? [NC]
RewriteRule ^folder/? /index.php?r=search&term=%1 [L,NC]
这是什么'[^ /]'?你的意思是'[^&]'? – 2013-04-18 06:36:03
@Olaf好问题。我也对此有所怀疑,但假设查询字符串与描述一样,并最终可能以斜杠结尾,如“http://www.domain.com/folder/?user = user1 /'。如果手动输入,可能会发生这种情况。正如你所说,如果有更多的键值对,可以使用'&'。虽然似乎并不存在。 – 2013-04-18 06:49:21
尝试(未测试)
RewriteEngine On
Options +FollowSymLinks
RewriteRule ^folder1/?user=(.*)$ index.php?r=search&term=$1 [R=301,L]
http://perishablepress.com/stupid-htaccess-tricks/这或许可以帮助你。 – diEcho 2013-04-18 04:38:26