php - htaccess 未重定向到 https

标签 php apache .htaccess redirect

我在 htaccess 中有以下代码

Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /films/

RewriteCond %{REQUEST_METHOD} =POST
RewriteRule ^ - [L]

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

我希望它自动将 url 重定向到 https 但它不是重定向。我尝试改变

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

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

最佳答案

要强制HTTPs,您可以使用:

RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

因此,所有内容都留给您 https:// 。包含 {REQUEST_URI} 比指定目录更好。因为它也适用于所有目录。

正如我最近了解到的,最好将强制的 wwwhttps 结合起来,尝试使用这个:

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [R=301,L,NE]

关于php - htaccess 未重定向到 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38262158/

相关文章:

php - 仅在单个正则表达式中多次匹配一组

php - PHP 从什么顺序读取配置?

php - 伪造文件扩展名

php - 使用 stream_context_create 执行 POST——结果为 false :(

php - SQL 查询中的 DISTINCT 日期时间

php - WordPress 媒体文件上传 403 禁止

php - .htaccess 中的基本 URL

php - .htaccess错误无法按预期工作

php - 插入命令?

apache mod_rewrite 不工作或未启用