.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
——也就是说,现有的查询字符串将被丢弃
资料来源: