我正在安装Wordpress在它自己的目录,并希望强制HTTPS。哪个是第一位的:重写规则强制HTTPS,还是重写规则直接指向子目录?
我已经做了力HTTPS,这是很好的工作。
下面是我如何强制HTTPS (当然"example.net“不是站点的名称!):
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^(www\.)?example\.net
RewriteRule ^(.*)$ https://example.net/$1 [R,L]使用来自https://wordpress.org/support/article/giving-wordpress-its-own-directory/的子目录的代码如下所示:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/my_subdir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /my_subdir/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ my_subdir/index.php [L]
</IfModule>这里是否有正确的顺序,还是首先重定向到子目录,然后强制HTTPS?
发布于 2019-06-25 17:33:56
哪个是第一位的:重写规则强制HTTPS,还是重写规则直接指向子目录?
强制HTTPS的指令首先要执行。如果您将它们放在WordPress前端控制器之后,那么您的WordPress URL不会被重定向(至少由.htaccess重定向)--只会重定向静态资源(图像、CSS、JS等)。将被重定向,这不是由WordPress前端控制器处理的。
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
你有很多关于主机名的支票。除非您有多个域(或主域的子域),这些域都指向文件系统上的同一个区域,并具有不同的用途,否则这是不必要的。
目前,HTTP到HTTPS重定向是302 (临时)重定向。用302进行测试以避免缓存问题,但最终HTTP到HTTPS重定向应该是301 (永久)重定向。即。将RewriteRule标志R更改为R=301。
https://stackoverflow.com/questions/56758153
复制相似问题