我有多个wordpress安装和.htaccess
重写规则的一些问题,主要用于强制https,但也去除www。来自任何域。强制非WWW,但强制https跨越所有wordpress和整个域名
域/子域:
- WordPress的1:
examplewebsite.com
(/home/hostingacc/public_html/
) - WordPress的2:
test.examplewebsite.com
(/home/hostingacc/public_html/test/
) - WordPress的3:
moretests.examplewebsite.com
(/home/hostingacc/public_html/moretests
)
htaccess的重新写入
我试图用我已经在互联网上发现了几个重写规则,一个是不知道该怎么用最好的之一,但下面是我用
RewriteEngine On
RewriteCond %{HTTP_HOST}#%{HTTPS}s ^www\.([^#]+)#(?:off|on(s)) [NC]
RewriteRule^http%2://%1%{REQUEST_URI} [R=301,L]
,我从拿到主重写规则https://github.com/h5bp/server-configs-apache/issues/48但如前所述,这些中的一个可能更适合为FORCING HTTPS和强制删除WWW
RewriteEngine On
RewriteCond %{SERVER_PORT} 80 [OR]
RewriteCond %{HTTP_HOST} ^www.examplewebsite.com
RewriteRule ^(.*)$ https://examplewebsite.com/$1 [L,R=301]
或
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^examplewebsite\.com$ [NC]
RewriteRule^https://examplewebsite.com%{REQUEST_URI} [R=301,L]
或
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www*\.(.*examplewebsite\.com)$ [NC]
RewriteRule^https://%1%{REQUEST_URI} [R=301,L]
或
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www*\.(.*examplewebsite\.com)$ [NC]
RewriteRule^https://%1%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
所有上述规则,似乎在关于工作,迫使HTTPS和主WordPress安装去除WWW但是规则目前不适用于子域或/wp-admin/
每个wordpress安装的子目录,我认为这是因为每个目录中都有一个.htaccess
文件。
问题重温
examplewebsite.com(主站)正确被迫始终使用https,也被迫删除WWW。但是...问题位于examplewebsite.com/wp-admin/,它仍然正确强制https(通过规则或通过wp-config.php强制管理员ssl,但它并没有强制删除www。原因,我想这是因为我有以下.htaccess文件位于/ wp-admin /文件夹下,所以它看起来像我需要在此文件夹中的htaccess规则来强制删除www。并且也强制https。
test.examplewebsite.com和moretests.examplewebsite.com(子域)都有它不是强制使用HTTPS的一个问题,这也不是强制删除WWW。
test.examplewebsite.com和moretests.examplewebsite。 com(子域名)都与第一个/ wp-admin /具有相同的问题不要强行删除www。
如果我进入我的子域的设置或SQL,甚至编辑wp-config.php以覆盖SQL并将网站url和home url更改为使用https并且不使用www。(https的会导致此问题),那么WordPress的安装变得inacessable,他们消失和来访的链接子域重定向的主要网站,而不是
配置
- examplewebsite.com /负载 - 电流。 htaccess的文件
主页:http://pastebin.com/raw/9RNuQZS5
WP管理:http://pastebin.com/raw/8vVnDTRx
- examplewebsite.com - SQL变量
站点URL(主页):https://www.examplewebsite.com
WordPress的网址:https://www.examplewebsite.com
- examplewebsite.com - WP配置(覆盖SQL)
配置:
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
define('WP_HOME','https://examplewebsite.com');
define('WP_SITEURL','https://examplewebsite.com');
define('DOMAIN_CURRENT_SITE', 'examplewebsite.com');
define('COOKIE_DOMAIN', 'examplewebsite.com');
define('ADMIN_COOKIE_PATH', '/wp-admin/');
- test.examplewebsite.com和moretests.examplewebsite.com
的子域都设置如下,但是不施加WP-配置目前因为强制https导致问题4.
.htaccess文件与99%相同到主域/网站与那个唯一的例外在那些没有自定义代码重写WP循环规则(从WWW重定向到非www和HTTP重定向到https)
- test.examplewebsite。 COM和moretests.examplewebsite.com - SQL变量
站点URL(主页):http://test.examplewebsite.com
WordPress的网址:http://test.examplewebsite.com
- test.examplewebsite.com和moretests.examplewebsite。COM - WP配置(重写SQL)
配置:
define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
define('WP_HOME','https://test.examplewebsite.com');
define('WP_SITEURL','https://test.examplewebsite.com');
define('DOMAIN_CURRENT_SITE', 'test.examplewebsite.com');
define('COOKIE_DOMAIN', 'test.examplewebsite.com');
define('ADMIN_COOKIE_PATH', '/wp-admin/');
设置上面,导致同样的问题,因为SQL变化(第4期)
应该在哪里子域名重定向到如果没有HTTPS?主要域名或与https的子域名? –
子域名应该是https而不是http。 – Ryflex
你说wp-admin没有做https?你的.htaccess中会有其他规则可以做到这一点吗? –