我的网站是用CodeIgniter编写的,托管在Ubuntu 16.04上 我必须将所有域和子域重定向到 https://www。
例如:我想要这样
http://com-download.live --> https://www.com-download.live
http://youtube.com-download.live --> https://www.youtube.com-download.live
http://vimeo.com-download.live --> https://www.vimeo.com-download.live
注意:请告诉我更好的方法,我应该在哪里放置重定向规则,在 apache 虚拟主机中还是在 .htaccess 中?
我当前放置在虚拟主机中的代码是:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)com-download.live [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}$1 [R=301,L]
但它无法正常工作
http://www.com-download.live 重定向到http://www.www.com-download.live
在我看来,通过htacces重定向会更容易,示例如下:
RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$
https://www.yourdomain.com/$1 [R,L]
但是考虑到将来编辑它的可能性,最好通过服务器设置重定向,如果您有更多的域,则更不紧急且更容易观察
控制台上的示例:
sudo nano /etc/apache2/sites-available/000-default.conf
RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]