Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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
Php 在url前面强制使用https和www时避免许多重定向_Php_Apache_.htaccess_Redirect_Nginx - Fatal编程技术网

Php 在url前面强制使用https和www时避免许多重定向

Php 在url前面强制使用https和www时避免许多重定向,php,apache,.htaccess,redirect,nginx,Php,Apache,.htaccess,Redirect,Nginx,我有一个网站,我正在部署到启用https的服务器上。因此,我的客户要求如下: 强制https。 将www保留在url中,以便获得url,而不是强制3W。 我在.htaccess文件上使用此规则是为了获得所需的效果: RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/es/$1/ [R=301,L] 但是当使用测试页面速度时,我得到的服务器响应时间很差,只有1s。使用Chrome开发者工具进行

我有一个网站,我正在部署到启用https的服务器上。因此,我的客户要求如下:

强制https。 将www保留在url中,以便获得url,而不是强制3W。 我在.htaccess文件上使用此规则是为了获得所需的效果:

RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/es/$1/ [R=301,L]
但是当使用测试页面速度时,我得到的服务器响应时间很差,只有1s。使用Chrome开发者工具进行调试,我发现网站在最后一次重定向后的响应时间大约为300毫秒,因此,重定向增加了响应时间


所以,我的问题是,如何在最小化重定向的同时,在url前面强制使用https和www?

尝试这样做:

强制SSL:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
警队网页:

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

您可以使用以下规则,这些规则将在您的URL中附加www和https

RewriteEngine On

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


# Ensure https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]