【发布时间】:2022-01-24 02:20:21
【问题描述】:
我正在尝试从 apache2 中的 URI 中删除所有双斜杠。我的方法适用于任何不包含斜杠或文件名但在后者失败的 URI。
免责声明:我还不是正则表达式方面的专家 - 也许这就是问题所在。
工作:
??? http://localhost////test -> 改写为 -> http://localhost/test
??? http://localhost//////test////test -> 改写为 -> http://localhost/test/test
损坏(两个 URI工作,但没有重写):
??? http://localhost/////test/////test///// -> 完全不重写
??? http://localhost/////test/////test/test.html -> 完全不重写
我的 apache2 配置摘录:
<Directory /var/www/html/>
AllowOverride all
Require all granted
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} (.*)//(.*)
RewriteRule (.*) %1/%2 [R=301,L]
</Directory>
我尝试了我能找到的每一种方法,但 每一种 仅在没有文件名或尾部斜杠附加到 URI 时实现了多个斜杠的替换。我还在 Firefox 和 Chromium 中检查了我的 DevTools,看看是否在非工作 URI 上发生了 301 重定向,但它没有。
我的 /var/www/html 文件夹中也没有 .htaccess 文件。
【问题讨论】:
标签: regex url url-rewriting webserver apache2