[英]WordPress site not connecting to DB on non-www
我的WordPress網站出現問題,無法連接到非www域上的數據庫。 我正在嘗試使用以下規則將所有非www請求重寫為www,但這沒有任何效果:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
在我的服務器上,我目前有兩個.htaccess
文件-一個在根目錄中,該文件將裸域重定向到一個包含我的網站的子目錄(請參見下文),另一個在此子目錄中,該目錄重寫了一些默認的WordPress網址。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/sub-directory/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /sub-directory/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^(/)?$ sub-directory/index.php [L]
</IfModule>
對於DNS,我有一個A記錄,該記錄將@
指向我的服務器的IP地址,並將一個CNAME將該www
指向@
。
我的wp-config.php
文件包含以下讀取數據庫憑據的條件:
if($_SERVER['SERVER_NAME'] !== 'www.domain.com') {
include(dirname(__FILE__) . '/wp-config-local.php');
define('WP_LOCAL', true);
}else {
// Production credentials
}
我知道domain.com無法連接到我的數據庫,因為它的$_SERVER['SERVER_NAME']
變成了domain.com
而不是www.domain.com
,但是我沒有將兩者都添加到憑據條件中,而是認為.htaccess
重寫會避開這個。 我正在努力確定問題出在哪里。 提前致謝
問題是在子目錄重定向后執行了非www規則。 一旦放置在前面,一切都會按預期工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.