2014-11-03 167 views
0

我希望你能帮我用下面的htaccess重写规则。htaccess wordpress https重写规则

# BEGIN WordPress 

# WPhtc: Begin Custom htaccess 
# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 

RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

我最近改变了从http我的WordPress网站到https ......问题是,旧的URL重定向到一个域名,而不是该页面的HTTPS版本

如果我访问以下页面https://domain.com/test/testing/它工作100%,现在如果我将https部分更改为http然后页面重定向到https://domain.com而不是https://domain.com/test/testing/我该如何解决它,以便如果您转到旧版本页面http://domain.com/test/testing/(非https版本),它redir而不仅仅是域名https://domain.com

+0

http://stackoverflow.com/questions/4083221/how-to-redirect-all-http-requests- to-https – 2014-11-03 17:05:52

+0

您是否已将网站和主页URL更改为永久链接中的“https://”? – anubhava 2014-11-03 17:20:13

+0

嗨Anubhava,是的,我已经完成了它...它适用于https://完美,但只要你访问一个旧的链接,然后它重定向到家庭https://版本,而不是https格式的页面... – 2014-11-03 17:25:01

回答

2

您必须找到%{REQUEST_FILENAME}的解决方法,因为这只能表示被访问的文件。但你显然想访问SSL vHost。 所以你可能会将https硬编码到你的.htaccess中。

RewriteEngine On 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

This可能会帮助你很多。 (发现上面的代码)

0

我一直在努力解决这个问题,最后我发现了一个解决方案,在主页重定向和wordpress在同一个htaccess文件中,最后它也适用于旧的http链接,重定向到https:

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 

# 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 
0

我试过你的解决方案。它运行良好,但如果你这样做,你需要手动改变你所有的内部链接。 这工作得更好;)

RewriteEngine On 

RewriteCond %{SERVER_PORT} 80 

RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R,L] 
0

我用这个的.htaccess为WordPress

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{ENV:HTTPS} !=on 
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 

# BEGIN WordPress 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule>