我有一个简单的数据库查询脚本和WordPress安装,我使用以下URL向其传递一个参数:http://example.com/db/?p=foo
.
我的数据库脚本读取参数时使用
$pid = $_GET[\'p\'];
如果参数不是以数字开头,则一切正常。所以?p=foo
可以,但是?p=3poo
为空。
编辑:我通过将脚本更改为
<?php
print_r($_GET);
exit;
作为输出Array ( )
我怀疑是mod\\u重写器抑制了以数字开头的参数。但我不知道为什么,以及如何改变这种行为。有什么想法吗?编辑:不幸的是,我不能更改参数“p”的名称,也不能更改参数的值,使其不以数字开头,因为URL已经作为QR标记发布给公众,所以我需要一种解决方法来实现这一精确的URL。
这是我的.htaccess
根文件夹中的文件(按照MrWhite的建议编辑,按预期工作)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>