gpt4 book ai didi

regex - 删除 .htaccess 中 URL 中各处的多组斜杠

转载 作者:行者123 更新时间:2023-12-05 08:14:41 25 4
gpt4 key购买 nike

我目前有一个网站, guest 可以访问每个 url,其中包含任意数量的斜线以分隔文件夹名称。例如,如果 URL 应该是:

http://example.com/one/two/three/four

然后用户可以通过以下任何方式访问同一页面:

http://example.com/one//two///three////four/////
http://example.com/one/two////three/four/////
http://example.com///one///////////two////three/four/
http://example.com///////////one///////////two/three/four

但是,我希望上面的示例 url 仅将用户重定向到此 URL:

http://example.com/one/two/three/four

这是我的 .htaccess 文件,试图阻止巨大的斜杠:

RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]
RewriteRule ^(.*)/+$ /$1 [R=301,L,NC]
RewriteCond %{REQUEST_URI} ^/+(.*)/+$
RewriteRule .* /%1 [R=301,L]

第三行成功地停止了长 URL 上的尾部斜杠。第 4 行和第 5 行是我尝试在域名后停止尾部斜线,但没有成功。

我问这个问题的原因是因为我不希望谷歌因为重复的内容而抓到我,并且在网站上启用 adsense 的情况下,谷歌可能会扫描我访问的所有 URL。

是否有 RewriteCond/RewriteRule 组合我可以用来去除中间的斜杠或者它更复杂?

最佳答案

您可以使用此规则删除 URL 中任意位置的多个斜杠查询字符串除外:

RewriteCond %{THE_REQUEST} \s[^?]*//
RewriteRule ^.*$ /$0 [R=302,L,NE]

关于regex - 删除 .htaccess 中 URL 中各处的多组斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31933042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com