.htaccess用于附加https:// www

时间:2012-10-10 02:09:03

标签: apache .htaccess ssl https

我已经搜索了很长一段时间来获得解决方案或提示我的查询,但没有找到任何有价值的东西。基本上我有我的应用程序SSL保护。我只想要那个

  1. 如果用户尝试在没有https和www的情况下打开应用程序,则会自动附加“https://www

  2. 如果用户输入“https://mydomain.com”,则应更改为“https://www.mydomain.com

  3. 如果用户输入“www.mydomain.com”,则应更改为“https://www.mydomain.com

  4. 我知道这可以通过.htaccess实现,但我对这些文件的编写方式一无所知。

    任何帮助都将受到高度赞赏。

4 个答案:

答案 0 :(得分:2)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

答案 1 :(得分:1)

尝试将这些规则添加到文档根目录中的htaccess文件中:

RewriteEngine On
RewriteCond !{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

答案 2 :(得分:0)

使用以下内容:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.mydomain.com/$1 [R,L]

答案 3 :(得分:0)

在.htaccess文件中

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://www.mydomain.com/$1 [L,R]
</IfModule>

RewriteCond%{HTTPS} off会检查HTTPS是否已关闭。如果它确实关闭(URL不包含https://),则应用重写规则并重定向用户。