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以外的所有标记都可能被忽略,这是真的,但你永远不知道什么时候有人来,并在下面添加一条新规则:)