Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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 避免多页重定向http://example.com &燃气轮机;https://example.com -&燃气轮机;https://www.example.com_Php_.htaccess_Url Rewriting - Fatal编程技术网

Php 避免多页重定向http://example.com &燃气轮机;https://example.com -&燃气轮机;https://www.example.com

Php 避免多页重定向http://example.com &燃气轮机;https://example.com -&燃气轮机;https://www.example.com,php,.htaccess,url-rewriting,Php,.htaccess,Url Rewriting,GTMetrix和Google Pagespeed Insights报告说,如果用户键入domain.com,我的网站会因多个页面重定向而变慢: URL: TIME SPENT: http://example.com/ 285ms https://example.com/ 452ms https://www.example.com 0ms 我正在尝试只使用一个(有条件的?)重定向,它将始终在https和www子域中结束

GTMetrix和Google Pagespeed Insights报告说,如果用户键入domain.com,我的网站会因多个页面重定向而变慢:

URL:                       TIME SPENT:
http://example.com/        285ms
https://example.com/       452ms
https://www.example.com    0ms
我正在尝试只使用一个(有条件的?)重定向,它将始终在https和www子域中结束

这是当前的htaccess代码:

RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]
这是可行的,但是有没有人对速度着迷,可以让它在一个重写条件下变得更快

我在Stack overflow(和其他地方)进行了无休止的搜索,但没有其他方法能够将所有内容与条件结合在一起,并使其比当前的解决方案更快


我真的很感激你的见解

将R标志更改为301:

RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R=301]
因为默认情况下,它是一个302(临时)重定向,您可以避免很多重定向。
将R标志更改为301:

RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R=301]
因为默认情况下,它是一个302(临时)重定向,您可以避免很多重定向。

该规则将您的
http
非www
URL重定向到
https://www
在一个重定向中。正如Amit已经提到的,从规则方面看,它看起来还可以。给它一个从网络站点检查的机会怎么样?可能是网络数据包或跟踪等,同时发出请求,以查看该方是否也可以。老实说,我不是专家,但如果规则方面一切顺利,然后我会给它一个机会,至少在故障排除列表中勾选此复选框。该规则已经更快了,因为它将您的
http
非www
URL重定向到
https://www
在一个重定向中。正如Amit已经提到的,从规则方面看,它看起来还可以。给它一个从网络站点检查的机会怎么样?可能是网络数据包或跟踪等,同时发出请求,以查看该方是否也可以。老实说,我不是一个专家,但若从规则方面来说一切都很好,那个么我会给它一个机会,至少在故障排除列表中勾选这个复选框。