Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache .htaccess用于附加https://www_Apache_.htaccess_Ssl_Https - Fatal编程技术网

Apache .htaccess用于附加https://www

Apache .htaccess用于附加https://www,apache,.htaccess,ssl,https,Apache,.htaccess,Ssl,Https,我已经找了很长时间来寻找我的问题的解决方案或提示,但没有找到任何有价值的东西。基本上,我的应用程序是SSL安全的。我想要的就是 如果用户试图在没有https和www的情况下打开应用程序,它应该自动附加“https://www” 如果用户输入“https://mydomain.com”,应改为“https://www.mydomain.com” 如果用户输入“www.mydomain.com”,则应更改为“https://www.mydomain.com” 我知道这可以通过.htaccess实现,

我已经找了很长时间来寻找我的问题的解决方案或提示,但没有找到任何有价值的东西。基本上,我的应用程序是SSL安全的。我想要的就是

  • 如果用户试图在没有https和www的情况下打开应用程序,它应该自动附加“
    https://www

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

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

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

    我们将非常感谢您的帮助。

    请使用以下工具:

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

    通过
    httpd.conf
    启用mod_rewrite和.htaccess,然后将此代码放入
    文档根目录下的
    .htaccess

    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]
    

    尝试将以下规则添加到文档根目录中的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]
    
    在.htaccess文件中

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://www.mydomain.com/$1 [L,R]
    </IfModule>
    
    
    重新启动发动机
    重写条件%{HTTPS}关闭
    重写规则^(.*)$https://www.mydomain.com/$1[L,R]
    

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

    Anubhava-一气呵成。谢谢。如果你不介意,并且有一点时间,你能给我解释每一行吗。这会很有帮助的。我当然可以解释。第一条规则是检查主机名是否以
    www.
    开头。如果条件为真,则将所有内容重定向到
    https://www.%{HTTP\u HOST}%{REQUEST\u URI}
    这意味着在主机名前面加上
    www.
    。第二条规则是检查是否未为当前URL设置HTTPS。如果此条件为真,则将所有内容重定向到
    https://%{HTTP\u HOST}%{REQUEST\u URI}
    ,这意味着对当前URL使用https。请参阅详细文档。谢谢Anubhava。解释得很好,很容易理解。再次感谢。祝你好运