Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何通过重写规则绕过%23(哈希符号),而不丢失数据?_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php 如何通过重写规则绕过%23(哈希符号),而不丢失数据?

Php 如何通过重写规则绕过%23(哈希符号),而不丢失数据?,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我有以下.htaccess文件: RewriteEngine On RewriteCond %{REQUEST_URI} !^/command RewriteRule .* /command/rewritehandler.php?q=%{REQUEST_URI} [B] 请参见当前未回答问题的规格。 如果向服务器发出以下请求/aaa%23%23aa,则rewritehandler.php仅接收/aaa。看起来REQUEST\u URI只处理%23之前的数据。我应该键入什么?从RewriteCo

我有以下
.htaccess
文件:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/command
RewriteRule .* /command/rewritehandler.php?q=%{REQUEST_URI} [B]
请参见当前未回答问题的规格。
如果向服务器发出以下请求
/aaa%23%23aa
,则
rewritehandler.php
仅接收
/aaa
。看起来
REQUEST\u URI
只处理
%23
之前的数据。我应该键入什么?

RewriteCond
捕获值,然后使用反向引用使其工作:

RewriteEngine On

RewriteCond %{REQUEST_URI} (.+)
RewriteRule !^command/ /command/rewritehandler.php?q=%1 [NC,B,L,QSA]

这很有效。如果只有一个
RewriteRule
Yes,那么除了B以外的所有标记都可能被忽略,这是真的,但你永远不知道什么时候有人来,并在下面添加一条新规则:)