.htaccess 重写当前目标文件的规则

.htaccess 重写当前目标文件的规则,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有一个像这样的文件 www.domain.com/test.php 我想写一条规则,当调用此命令时,我将向该文件发送一个参数,但我不希望它们显示在URL中,即当上述路径位于浏览器中时,实际规则应为: www.domain.com/test.php?state=yes 这个的.htaccess规则应该是什么? 目前我的.htaccess中有 RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC] RewriteRule ^test\.php$ /t

我有一个像这样的文件

www.domain.com/test.php
我想写一条规则,当调用此命令时,我将向该文件发送一个参数,但我不希望它们显示在URL中,即当上述路径位于浏览器中时,实际规则应为:

www.domain.com/test.php?state=yes
这个的.htaccess规则应该是什么? 目前我的.htaccess中有

RewriteCond %{HTTP_HOST} ^www\.domain\.com$  [NC]
RewriteRule ^test\.php$ /test.php?view=index [NC,L]

但是这是抛出一个500服务器错误???

我没有得到一个500错误,你的.htaccess中还有什么

以下是您可以使用的:

RewriteEngine on
RewriteBase /
RewriteRule ^test\.php test.php?view=index [NC,L,QSA]
QSA标志丢失:

当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有查询字符串,并用新生成的查询字符串替换它。使用[QSA]标志会导致组合查询字符串

考虑以下规则:

RewriteRule /pages/(.+) /page.php?page=$1 [QSA]
使用[QSA]标志,对
/pages/123?one=two
的请求将映射到
/page.php?page=123&one=two
。如果没有[QSA]标志,相同的请求将映射到
/page.php?page=123
——也就是说,现有的查询字符串将被丢弃

资料来源: