我在Apache服务器上运行Wordpress。现在我想使用.htaccess配置以下内容:
因此,如果用户输入:http://www.domain.com
,他将被定向到https://domain.com/domaincom/web
,但在浏览器导航中,他会看到https://domain.com
。
我已经拥有以下内容:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTPS} =off
RewriteRule ^ https://%{HTTP_HOST}/domaincom/web/%{REQUEST_URI} [QSA,L,R=301]
但这不会取代URL。你能救我吗?
答案 0 :(得分:1)
尝试:
RewriteEngine on
#Enable https
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R]
# if we are not already on /domain/web
RewriteCond %{REQUEST_URI} !^/domaincom/we [NC]
#Then rewrite any request to /domaincom/web
RewriteRule ^(.*)$ /domaincom/web/$1 [NC,L]
第二个条件对于防止重写循环错误非常重要。否则没有这个条件/ domaincom / web会不断改写自己。
答案 1 :(得分:0)
支持HTTP_X_FORWARDED_PROTO的负载均衡器或反向代理后面的网站可以通过在require_once调用之上添加以下代码到wp-config.php文件来修复:
if(isset($ _ SERVER ['HTTP_X_FORWARDED_PROTO'])&& $ _SERVER ['HTTP_X_FORWARDED_PROTO'] =='https') $ _SERVER ['HTTPS'] ='on';
或插件
添加到您网站上的WordPress插件文件夹中,然后在插件管理器中激活它
https://gist.github.com/krunalsojitra/b975043933bca9183f57581e45858949
它的工作方式与
相似http://www.exmaple.com/blog/ **到** https://www.exmaple.com/blog/