我有一个包含文件夹的站点,以及该文件夹中的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]
但这根本不起作用。
答案 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)