Htaccess 重写删除尾部斜杠

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

Htaccess 以某种方式自动删除 url 末尾的所有尾随斜杠并只保留一个。

例如 http://localhost/api/param1/// 变为 http://localhost/api/param1/

您能告诉我为什么会发生这种情况以及如何消除这种情况吗? (.*) 应该匹配所有内容,对吗?但事实并非如此。就像我说的,如果我去 http://localhost/api/param1///

$_GET['url']
应该是
param1///
但它是
param1/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
php .htaccess
2个回答
3
投票

Apache 自动将多个斜杠以

RewriteRule
模式剥离为单个斜杠。

如果您想捕获多个斜杠,请使用

RewriteCond
代替:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/(.*)$
RewriteRule ^ index.php?url=%1 [QSA,L]

0
投票

我遇到了这个问题,解决方案是这样的:

RequestConfig requestConfig = RequestConfig.custom() .setNormalizeUri(false) .build();

只是 .setNormalizeUri(false) 是重点。

并将其 (requestConfig) 传递给 HttpClients,如下所示:

HttpClients.custom() .setDefaultRequestConfig(requestConfig) .build();

© www.soinside.com 2019 - 2024. All rights reserved.