我正在使用带有默认.htaccess的WordPress,我需要将所有以https://开头的网址重定向到http://。我的服务器为http和https协议使用相同的文件夹... 这是我目前的.htaccess:
# BEGIN WordPress <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] </IfModule>
# END WordPress
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
它适用于https://www.domain.com/(重定向到http://www.domain.com/),但它不适用于https://www.domain.com/subpages/(它也会重定向到http://www.domain.com/)。
你看到.htaccess有什么问题吗?
谢谢
答案 0 :(得分:4)
更改规则的顺序:
Options +FollowSymlinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>
否则,WordPress规则将捕获所有URL路径不为空的请求(即不只是/
)。