我希望我的网站始终显示“https://www.example.com”。如果用户点击不同格式的 URL,则必须重定向到包含“www”和“https”的完整 URL。
我尝试通过更新 .htaccess 文件强制我的 WordPress 网站始终使用“https”。我发现重定向适用于大多数情况,但某些 URL(例如“http://example.com/category”)无法正确重定向。
但是,如果我在 URL 中添加尾部斜杠,例如“http://example.com/category/”,则重定向规则将按预期工作。
下面是我的 .htaccess 代码。我的网站托管在 Cloudways 上。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
将以下内容添加到 .htaccess 文件的顶部。
RewriteEngine on
RewriteCond %{HTTPS} !on [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) https://www.example.com%{REQUEST_URI} [L,R=301]
https://wordpress.org/support/topic/forcing-http-to-https-and-non-www-to-www/
在这种情况下,我强烈建议不要在 .htaccess 文件中使用重定向,而是简单地定义 WordPress 的 URL 地址,您可以从设置 URL 地址的后端设置中进行设置,并将其包含在“wp-config.php”:
将这两行添加到您的 wp-config.php,其中“example.com”是您网站的正确位置。
define('WP_HOME','https://www.example.com');
define( 'WP_SITEURL', 'https://www.example.com' );
正如下面文章中提到的: https://wordpress.org/support/article/change-the-site-url/
通过这样执行,您将摆脱重定向过程并协助网站的“优化”。此外,谷歌和其他搜索引擎将使用“HTTPS”缓存默认地址,从而减少甚至没有重定向,从而减少网站上的加载时间。