我正在使用变量将查询传递给我的搜索结果页面:?s=
。
我正在测试该站点,我发现当查询中有一个&
符号时,当我尝试检索$_GET['s']
它时,它会被 & 符号截断。
我尝试过&
并将其转换为%26
,但我仍然遇到同样的问题。
如何对它们进行编码以在 URL 中传递它们?
编辑:
我指出我尝试对其进行编码,%26
但它仍然无法正常工作。
urlencode()
当?s=pizza%26pasta
我得到print_r($_GET)
:
Array ( [s] => pizza [pasta] => )
编辑2:
我刚刚发现问题实际上与.htaccess
它似乎改变了“&something =”中的“&something”有关。不知道如何在 htaccess 中修复它。
这是我的 .htaccess 文件:
RewriteEngine On
RewriteBase /
# remove www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1%{REQUEST_URI} [R=301,QSA,NC,L]
# rewrite to action
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/?$ /a/?s=$1 [L,QSA]