.htaccess 重写 URL 中的空间返回 403 禁止错误

问题描述 投票:0回答:0

我在 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 中的指令修复它,但没有成功。

php apache .htaccess mod-rewrite
© www.soinside.com 2019 - 2024. All rights reserved.