我在Wordpress网站上启用了SSL,并通过中的以下代码设置从www到非www的重定向。htaccess:
# REDIRECT WWW TO NON-WWW
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\\.example\\.com [NC]
RewriteRule (.*) https://example.com/$1 [L,R=301]
# REDIRECT HTTP TO HTTPS
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
然而,它只在主页(example.com)上运行良好。我做错了什么?
最合适的回答,由SO网友:MrWhite 整理而成
您将指令放错了位置,Canonical重定向需要在# BEGIN WordPress
节(前控制器),否则,除了物理文件和目录之外,不会对它们进行任何处理。(主页映射到物理目录,因此重定向)。
出于某种原因,您还重复了WordPress前端控制器部分,但略有不同。你应该只有一个。
# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\\d+) [NC]
RewriteRule .* - [F]
# END block author scans
此部分也位于错误的位置,需要在
# BEGIN WordPress
部分您应该删除
RewriteEngine
和
RewriteBase
来自此块的指令。