将所有get参数转换为一个

时间:2011-05-13 15:28:14

标签: apache .htaccess

我的.htaccess文件包含代码:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) ?p=$1  [L] 

但我希望它不仅可以将URI字符串转换为get参数p,还可以将所有其他get参数转换为p,换句话说:
domain.com/somewhere/somepage.html?foo=2 ---->
domain.com/?p=urlencoded(somewhere / somepage.html?foo = 2)
我该怎么做?

1 个答案:

答案 0 :(得分:1)

在.htaccess文件中使用以下代码

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{QUERY_STRING} !^p= [NC]
RewriteRule . /?p=%{REQUEST_URI}?%{QUERY_STRING} [L]

由于此处未提供NE标志,因此mod_rewrite引擎将在内部重定向之前对原始URI进行编码。