php - htaccess 重定向到 "https://www."

标签 php .htaccess redirect mod-rewrite ssl

我想重定向到 https://www .

这意味着:

http:// --> https://www.
http://www. --> https://www.
https:// --> https://www.
https://www. --> no redirection

我尝试了很多事情,但从未达到那个目标。

我当前的 .htacces:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTP:X-Forwarded-Proto} =http
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ web/$1 [QSA,L]
</IfModule>

但问题是它不会重定向到 www。所以我试着把它放在前面:

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

但这会导致重定向 curl ,因此关闭我的网站。

PS: 我在 symfony 上

有人有神奇的解决方案吗? 谢谢!

最佳答案

您可以使用这些规则来强制执行 https 和 www`:

RewriteCond %{HTTP_HOST} !^www\. [OR,NC]
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/$1 [L]

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

相关文章:

java - sendRedirect VS requestDispatcher.forward 错误页面?

php - Elasticsearch 忽略查询字符串

javascript - 在平板电脑上使用弹出框

apache - 如何防止用户通过url访问多个目录下的图片

apache - 使用 .htaccess 重写 GET 查询字符串

redirect - nginx 重定向(如果不是我的网站)

JavaScript 定时重定向

javascript - 搜索文本文件、显示超链接并打印内容

php - 子项目站点的通用用户配置文件——安全地从主服务器传输用户数据

.htaccess url 重写不工作