虚拟主机使用Apache服务器之WordPress伪静态及https配置
这几天在搭建一个外贸网站,因为需要配置https,且客户使用的是虚拟主机,用的是Apache服务器,所以就查找了相关https配置方法,其配置文件如下,只需要写在.htaccess文件内即可,把域名换成你网站的域名。
<IfModule mod_headers.c> Header add Access-Control-Allow-Origin: * </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:From-Https} !^on$ [NC] RewriteCond %{HTTP_HOST} ^(www.)?seouv.com$ [NC] RewriteRule ^(.*)$ https://www.seouv.com/$1 [R=301,L] </IfModule> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
某些主机修改到上面这一步时可能会提示重定向次数过多的问题,则继续修改wp-includes/load.php或wp-includes/functions.php 这个文件,搜索is_ssl找到对应的函数,将$_SERVER[‘HTTPS’]修改为$_SERVER[“HTTP_FROM_HTTPS”](修改文件前请注意备份)。
或将此函数改为以下
function is_ssl() { if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'){ return true; } elseif (isset($_SERVER["HTTP_FROM_HTTPS"])&&$_SERVER["HTTP_FROM_HTTPS"]=='on'){ return true; } elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){ return true; } else{ return false; } }