【发布时间】:2018-05-12 18:14:10
【问题描述】:
HTTPS 工作正常,HTTP 工作正常,但是当我尝试在 .htaccess 文件中添加 HTTP 到 HTTPS 的重定向时,它会陷入重定向循环。
这里是阿帕奇:
<VirtualHost *:80>
DocumentRoot /var/www/html/mysite
ServerName mysite.com
ServerAlias www.mysite.com
</VirtualHost>
<VirtualHost *:443>
DocumentRoot /var/www/html/mysite
ServerName mysite.com
ServerAlias www.mysite.com
SSLEngine On
SSLCertificateFile /var/SSLs/somecert.crt
SSLCertificateKeyFile /var/SSLs/somekey.key
SSLCACertificateFile /var/SSLs/trust.crt
</VirtualHost>
这是 .htaccess 文件:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# RewriteCond %{ENV:HTTPS} !=on
# RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
当我取消注释 RewriteCond 时,它会陷入循环。在 Wordpress 中,我将网站和主页 url 设置为 https。
我还在 wp-config.php 中添加了以下内容,它解决了以前 https 不工作的问题:
$_SERVER['HTTPS'] = 'on';
感谢任何帮助。请注意,我用 mysite 替换了实际域
【问题讨论】:
标签: php wordpress apache .htaccess redirect