我正在尝试重写浏览器中显示的 URL 以删除 https://
部分。不熟悉 Apache 编码,我尝试了许多不同的方法来调整其他代码来实现结果,但没有成功。
我的 .htaccess
文件包括 310 重定向规则,以及一些重写条件,所有这些目前都有效:
# Force browswer to use SSL, even when referring URL is non-secure
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Catch-all for any potential 404 error (file not found) will
# redirect to the index (/) page
Options +SymLinksIfOwnerMatch
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . / [L,R=301]
非常感谢这方面的任何帮助!
最佳答案
I am attempting to rewrite the URL displayed in a browser to eliminate the
https://
portion.
我很想看看你的“尝试”。你为什么要这样做?
基本上,你不能。
您无法控制浏览器显示协议(protocol)(即https
或http
) ,或与此相关的 URL 的任何部分,在浏览器的地址栏中。并且任何试图“重写”URL 以删除 https://
的尝试都只会阻止您的网站通过 SSL 提供内容——这不是您的意图。更改浏览器地址栏中 URL 物理外观的唯一方法是更改物理 URL。这是基本的浏览器安全性——网站不应该能够控制这种行为。您不希望该网站能够伪装成它不是的东西(即。网络钓鱼)。
但是,一些浏览器允许用户在某种程度上控制这种行为。例如,Opera 默认会显示更友好的 URL,省略 HTTP
协议(protocol)甚至查询字符串。但是,可以在设置中禁用这种“友好”显示格式,以显示完整的“真实”URL。
通常,默认情况下,浏览器倾向于在通过普通 HTTP 提供服务时隐藏协议(protocol),而仅在通过 HTTPS 提供服务时才显示它——这是向用户表明该站点是安全的额外指示。任何删除协议(protocol)的尝试只会破坏用户的信任。
关于apache - 删除 https ://from URL while still serving SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44750186/