gpt4 book ai didi

apache - .htaccess 强制使用 SSL 并删除文件扩展名

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:53 26 4
gpt4 key购买 nike

我目前正在尝试使用 .htaccess 重写我的 URL,基本上我想强制所有连接到 https://并删除任何尾随的 .html 扩展名。

这是我目前所拥有的,

    RewriteEngine On

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

RewriteCond %{HTTP_HOST} ^www.%{HTTP_HOST}$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]


RewriteRule ^([^\.]+)$ $1.html [NC,L]

这会强制用户使用 https,但不会从 URL 中删除 .html 我哪里出错了?

最佳答案

您需要一个额外的规则来从 URL 中剥离 .html。此外,您可以将该规则与 wwwhttps 规则合二为一,以避免多重 301 重定向:

RewriteEngine On

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
RewriteCond %{THE_REQUEST} \.html[\s?] [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^(.*?)(?:\.html)?$ https://%1/$1 [R=301,L,NC,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+?)/?$ $1.html [L]

关于apache - .htaccess 强制使用 SSL 并删除文件扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39100057/

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