不使用.htaccess从http自动重定向到https

时间:2019-06-19 08:02:29

标签: apache http ssl

尝试将我的网站从http重定向到https,但无法正常工作。网站同时在http和https上打开。

这是我当前在htaccess文件中使用的代码部分,但是此代码不会使用https自动重定向网站,也不会同时使用http和https打开网站。真是令人困惑。

    ------------------------------------------------

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteRule . /index.php [L]

    </IfModule>

    # END WordPress
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-SSL} !on
    RewriteCond %{HTTP_HOST} ^www\.surffares\.com$
    RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteRule ^/?$ "https\:\/\/www\.surffares\.com\/" [R=301,L]

------------------------------------------------------------------------

但是此代码不起作用...

这是Godaddy建议在htaccess中用于自动重定向的代码, 但是此代码仅加载首页,自动重定向首页 当我单击任何其他页面时,只有一个页面但没有其他页面正在打开, 它显示了我找不到的错误。

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

--------------------------------------------------------------------

Godaddy客户支持人员告诉您,您需要提取.htaccess中的内页。

我如何将我的网站从http自动重定向到https,并提取网站的所有内部页面。

注意:我的网站位于php mvc laravel中

1 个答案:

答案 0 :(得分:3)

我已经快速构建了一个配置来测试这种情况。在Apache VirtualHost中,您需要使用AllowOverride确保apache尊重htaccess文件。

这是VirtualHost中的配置:

    <VirtualHost *:80>

     ServerName test.com
     DocumentRoot /var/www

    <Directory "/var/www>
      Require all granted
      AllowOverride all
    </Directory

  </VirtualHost>

然后在/var/www/.htaccess中定义以下内容:

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

希望有帮助。