目标是子域名tc.gamingprouk.net,它使用的是有效的SSL。我想.htaccess不仅要添加https://或www。我想要它们两个!像https://www.tc.gamingprouk.net一样。
这就是我的.htaccess
包含的内容:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^tc.gamingprouk.net [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.tc.gamingprouk.net/$1 [R,L]
# Hiding file extensions
Options +MultiViews
RewriteEngine on
# For .php, .html & .shtml URL's:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteRule ^([^\.]+)$ $1.shtml [NC,L]
问题在于:
案例1:
用户导航至 - > tc.gamingprouk.net
.htaccess重写为 - > https://tc.gamingprouk.net
问题:没有www
。!
案例2:
用户导航至 - > www.tc.gamingprouk.net
.htaccess什么都不做!
问题:它没有https
!
案例3:
用户导航至 - > https://www.tc.gamingprouk.net
.htaccess改写为相同的
问题:仅在这种情况下,它同时包含https://
和www
。
答案 0 :(得分:0)
您可以使用:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [R=301,L,NE]
这会检查www
和HTTPs
是否都已启用,如果不是,则会将其打开。在测试之前,请确保清除浏览器缓存。
答案 1 :(得分:0)
我发现了你可以使用的东西。以下 .htaccess 代码是Google的一部分:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
# Hiding file extensions
Options +MultiViews
RewriteEngine on
# For .php, .html & .shtml URL's:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteRule ^([^\.]+)$ $1.shtml [NC,L]