php - 通过 HTaccess 强制使用 SSL

标签 php .htaccess ssl

以下是我对 SSL 的一些疑问。

RewriteEngine On
RewriteCond %{SERVER_PORT} 80 
RewriteCond %{REQUEST_URI} somefolder 
RewriteRule ^(.*)$ https://www.domain.com/somefolder/$1 [R,L]
  1. 以上是强制所有内容通过 HTAccess 进入 SSL 的代码。有没有办法可以将此代码限制为特定的 IP 地址。我只想对我的 IP 地址强制使用 SSL,以便我可以使用新的 SSL 链接彻底测试该站点,然后查看(确保) 在将它带到实时站点之前,一切都在工作。仅使用我的 IP 进行测试会容易得多。

  2. SSL 会干扰任何获取/发布吗?意思是......如果我使用上面的代码,并且有人在页面上......并且他们提交了一个表单,它会强制他们进入 SSL,这是否会被视为重定向 并清除任何发布/获取变量?我只是想提前了解它是否会弄乱我正在运行的任何东西。

  3. 你们有没有遇到过强制使用 SSL 然后网站无法正常工作的问题?

最佳答案

如果您想确保您的站点与 HTTPS 兼容,请关闭纯 HTTP(假设它适用于整个服务器),或使用 Apache Httpd 指令(在 .htaccess 或主配置中)这使得需要通过 HTTPS 服务的页面在通过纯 HTTP 访问时返回错误(例如 404)。 您可以使用 Deny from xxxxxxx 为特定 IP 地址实现此目的.

不要依赖 mod_rewrite 或类似的方法将纯 HTTP 请求重定向到它们的 HTTPS 等效项。这充其量只会隐藏问题并造成错误的安全感。

这样做的原因是,即使使用重定向,初始请求在被重定向之前也是明确的:确保所有引用在使用它们之前都使用 https:// URI。您可以在 this answer 中找到更多详细信息.

关于php - 通过 HTaccess 强制使用 SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10090642/

相关文章:

php - 使用 cookie 维护 PHP session_start()

php - 倒计时完成后的服务器端操作

php - 通过 PHP 从 mySQL 将列中的不同值获取到数组中的问题

regex - htaccess 重写不同的目录

java - Spring Boot Api 休息 SSL

ssl - 2 向 SSL - 客户端证书未发送到服务器

java - 使用 TLSV1 的 cxf webclient 调用 api

php - 按字符串选择表(FROM)

.htaccess - 将子域请求重定向到子目录 + https(使用 .htaccess)

.htaccess - htaccess seo 友好的 URL