htaccess - 重写URL以使查询字符串更好

时间:2012-12-18 12:46:42

标签: .htaccess

我有一个包含文件夹的站点,以及该文件夹中的htaccess文件。对于该文件夹中的index.php文件,我想重写某个参数的查询字符串,以便输入以下URL:

www.example.com/myfolder/myparameter

表现得像这样(即在我的代码中生成$_GET['parameter'] = 'myparameter'

www.example.com/myfolder/index.php?parameter=myparameter

我已经在StackOverflow上查看了很多问题,但还没有设法让这个工作。到目前为止,我的代码是

RewriteEngine on
RewriteCond %{QUERY_STRING} ^(.*) [NC]
RewriteRule ^$ %0 [QSA]

但这根本不起作用。

2 个答案:

答案 0 :(得分:1)

请使用此代码

RewriteEngine on
RewriteRule (.*) index\.php?parameter=$1 [L,QSA]

答案 1 :(得分:0)

RewriteEngine on
RewriteRule (^.*/)([^/]+)$  $1index\.php?parameter=$2   [L,QSA]

<强>更新
对不起使用@ somasundaram的回答。每个目录.htaccess重写规则会丢失目录前缀:

  

在.htaccess文件中使用重写引擎时,每个目录前缀(对于特定目录始终相同)会自动删除RewriteRule模式匹配,并在任何相对之后自动添加(不以斜杠或协议开头) name)替换遇到规则集的结尾。有关将哪些前缀添加回相对替换的更多信息,请参阅RewriteBase指令。

(来自apache docs