我在 Ubuntu Apache Web 服务器上有 PHP 应用程序。
应用程序具有搜索功能,作为 GET 类型的请求。
提交搜索字符串后,Apache 返回 403 Forbidden 错误,如果我有多个单词作为搜索字符串,例如:
https://my-url.com/publications/index/search:nikola%20tesla/submit:Submit
但是它工作正常,如果我只有一个词作为搜索字符串,比如:
https://my-url.com/publications/index/search:nikola/submit:Submit
我检查了 Apache 日志文件,在这种情况下它会记录下一个错误:
AH10411:重写的查询字符串包含控制字符或空格
文件 /app/.htaccess 看起来像这样:
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
文件 /app/webroot/.htaccess 看起来像这样:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
你能帮我解决这个问题吗?试图用 .htaccess 中的指令修复它,但没有成功。