2014-01-06 62 views
16

背景:在olddomain.com上有一個可用的Wordpress 3.7站點。移動服務器後Wordpress管理員登錄cookies阻止錯誤

我把它移到newdomain.com成功,並在此過程中添加這WP-配置:

define('WP_HOME','http://newdomain.com'); 
define('WP_SITEURL','http://newdomain.com'); 

現在,當我嘗試登錄從newdomain.com/wp-admin我得到的跨瀏覽器的錯誤(儘管有啓用cookie並清除現有的Cookie):

ERROR: Cookies are blocked or not supported by // your browser. 
You must enable cookies to use WordPress. 

我試圖進入WP-login.php中和註釋掉以下行(744-747)停止條件testcookie檢查

// If cookies are disabled we can't log in even with a valid user+pass 
if (isset($_POST['testcookie']) && empty($_COOKIE[TEST_COOKIE])) 
    $user = new WP_Error('test_cookie', __("<strong>ERROR</strong>: Cookies are blocked or not supported by // your browser. You must <a href='http://www.google.com/cookies.html'>enable cookies</a> to use WordPress.")); 
else 
    $user = wp_signon('', $secure_cookie); 

,但這樣做讓我陷在一個重定向循環回到管理頁面:

http://myapp.com/wp-login.php?redirect_to=http%3A%2F%2Fmyapp.com%2Fwp-admin%2F&reauth=1 

我需要改變(或不設置)的網站的網址?還是有另一種可能的方法來解決這個問題?謝謝

+0

一般疑難解答: - '1.'你有沒有考慮更新到最新版本的WordPress? ''2.關閉所有插件,看看問題是否解決。如果問題解決,然後逐一重新激活它們以查看誰在解決問題。 –

+0

面臨的挑戰是,由於我無法訪問管理控制檯,我必須手動停用插件並通過FTP升級wordpress。可能是我最後的手段,但很難控制整個網站的變化。我可能會錯過一些插件生成的代碼或更新WP中的某些內容,從而產生額外的複雜性。 –

+0

嘗試停用所有插件(和mu插件),未解決 –

回答

21

已經遷移數百WP站點,這裏有幾點想法:

如果遷移DB:檢查數據庫選項表(可能wp_options),重視「SITEURL」和「家」欄目「OPTION_NAME」有正確的「option_value」爲您的網站。 「siteurl」是巨大的。

我可以證明,選項表調整是將數據庫遷移到WP中的新域所需的最低限度。 (不會導致重定向,仍然會有問題)

WP查找這些數據庫選項來將站點序列化到域,我非常肯定定義在堆棧中較低,沒有幫助。考慮將wp-admin活動鬆散地耦合到前端。你可以在前面打破一切(完成它),管理員仍然可以運行。

此外 - 該網站的工作與通用安裝/不遷移或調整?

如上所述 - .htaccess(丟失或錯誤配置)將導致您的錯誤。關於.htaccess文件,如果使用,這是一個dot.file文件,許多操作系統將「忽略」或「變爲不可見」,因此複製/粘貼或FTP應用程序或類似文件可能不會攜帶.htaccess文件.htaccess

對此肯定)如果你移動了數據庫並使用了漂亮的URL,並且錯過了可能是你需要修復的所有.htaccess。我只是在沙箱安裝時在本地進行了測試,並且在列option_value中留空時,表wp_option列「option_name」值「permalink_structure」將返回到?p = 1(非永久鏈接)狀態,並且.htaccess將大部分被繞過。

+4

真棒。將wp_options中的siteurl改爲新域解決了這個問題。非常感謝 –

+0

很酷,我多年前學會了HARD的方式。請記住 - 您的所有舊圖像和相關鏈接現在可能會被破壞。我使用了一個用於遷移的骯髒的黑客腳本 - 它並不是針對內核的弱點。如果你想要一個github鏈接,請向我諮詢msg。 –

+0

我記得使用'簡單'mysql查找(舊網址)並替換(新網址)的內容和額外表格。 – effulge

1

假設您在Unix/Linux類型的平臺上運行 - 請確保您從原始服務器複製了.htaccess文件,並更新了該文件中對舊域的任何引用。它將成爲你wordpress部署的根源(如果你正在使用它的話)。

要麼你或你可能在數據庫中的wp_options表中的某個地方引用了你的舊域。

要預先警告,當您從一個域移動到另一個域時,可能需要更新帖子中的圖像和媒體位置。您可以直接在數據庫中執行此操作,使用查找/替換工具或在帖子內手動重新指定圖像。修復您的發佈數據的另一種方法是從您的舊網站(從管理面板中)導出所有帖子 - 工具>導出>所有帖子;然後在導入到新網站之前手動更新該文件中的URL。

所有這些以及更多內容覆蓋在codex.wordpress.org。欲瞭解更多信息,請點擊此鏈接:

http://codex.wordpress.org/Changing_The_Site_URL

重要提示:

  1. 如果你要直接對數據庫內的任何修改,請務必閱讀談到了部分GUID

  2. 如果您使用Better WP Security,還有其他的事情你可能需要做,但根據你所描述的,我懷疑你安裝了它。

1

我有同樣的問題,非常相似的情況和規範。

最後,在嘗試了各種不同的解決方案後,我通過FTP重新命名了我的活動主題,然後能夠登錄到儀表板,我重新命名了我的主題,並且一切正常,我不知道爲什麼,但它可能有助於解決他們遇到的問題。

+0

謝謝David。我試圖通過FTP重命名主題,但它並沒有解決我的問題 –

3

由於我的緩存插件,我遇到了這個問題。

W3的總緩存又增加了以下我的wp-config.php文件:

define('COOKIE_DOMAIN', 'www.olddomain.com'); // Added by W3 Total Cache 

由於這是硬編碼,它沒有更新到新的網站域名。刪除添加的代碼後(因爲我目前沒有使用該插件),我可以再次登錄。

我會檢查wp-config.php中的單詞「cookie」,看看插件是否可能添加類似這樣的內容。

3

我得到這個相同的錯誤。

我已經在wp-config.php中爲一個全新網站硬編碼了Home和SiteURL,甚至沒有安裝插件。

問題:我在URL的末尾有一個空格。

define('WP_HOME','http://100.000.000.01/~acctname/wp '); 
define('WP_SITEURL','http://100.000.000.01/~acctname/wp '); 

刪除該空間解決了此錯誤。

define('WP_HOME','http://100.000.000.01/~acctname/wp'); 
define('WP_SITEURL','http://100.000.000.01/~acctname/wp'); 
+0

這是一個很好的知道黑客。 –

+0

曾導致cookie錯誤的類似問題:當我更新wp_options信息時,我的網址末尾有空格。 –

22

add to wp-config。PHP

define('ADMIN_COOKIE_PATH', '/'); 
define('COOKIE_DOMAIN', ''); 
define('COOKIEPATH', ''); 
define('SITECOOKIEPATH', ''); 

原始出處http://wordpress.org/support/topic/cookie-error-site-not-letting-me-log-in

+0

謝謝!這個解決方案適用於我......我被困在相當長的時間..你是一個救星.. – Goldengalaxy

+0

這應該被添加上面'/ *這就是全部,停止編輯!開心博客。 * /' – smonff

+0

也適用於我。你可以在登錄成功後刪除以上內容 –

2

此bug已被我逼瘋了最後幾天,所以我確定它與你們分享後認爲!問題是當我試圖登錄到我的WordPress後端我有這個煩人的餅乾錯誤,所以這就是我如何修復它!

  1. 轉到您的ftp和您的域名。
  2. 後來去到wp-內容
  3. 轉到你的主題文件夾
  4. 選擇了活躍
  5. 查找您天河城廣場的functions.php的主題,並打開它
  6. 在代碼的恩德你應該看到關閉標籤p>只是刪除它清除空間也保存!
  7. 轉到您的domain.com/wp-login.php
  8. 並嘗試登錄它應該被修復後,你可以把標籤放回原來的位置,並再次保存它是我的解決方案這個技巧也修復wordpress中的白頁問題

乾杯!

define('DOMAIN_CURRENT_SITE', 'yourdomain.com'); 
3

這個錯誤也移動多點安裝時,到一個新的領域,如果你更新數據庫表(通常爲wp_options)的所有選項,但忘了改變wp-config.phpDOMAIN_CURRENT_SITE線發生爲了我。

  1. 您在wp-config.php文件刪除//define('COOKIE_DOMAIN', 'www.domain.com');
  2. 確保所有文件都具有ANSI格式而不是UTF-8
5

這工作:

+0

我沒有'define('COOKIE_DOMAIN','www.domain.com;'註釋掉,所以我刪除了它,似乎已經修復了它。 – OJ7

1

我有同樣的問題,並沒有什麼作品。將我的php 5.3.x升級到5.4.x後,它工作正常。

2

我一直在Google搜索&想盡一切辦法擺脫這個cookie問題。最後我找到了兩個解決方案,可以幫助你。

解決方案1:

yoursite/WP-login.php中

註釋以下行770-773

代碼

if (isset($_POST['testcookie']) && empty($_COOKIE[TEST_COOKIE])) 
    $user = new WP_Error('test_cookie', __("<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You must <a href='http://www.google.com/cookies.html'>enable cookies</a> to use WordPress.")); 
else 
    $user = wp_signon('', $secure_cookie); 

這可能對一些網站和一些工作網站可能會顯示空白頁面。此外,不建議這樣做,因爲這個文件可能會在wordpress更新後被覆蓋,因此請嘗試第二種解決方案。

解決方案2:

yoursite /可溼性粉劑內容/主題/ yourthemeFolder/functions.php的

地方下面的代碼。

setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN); 
if (SITECOOKIEPATH != COOKIEPATH) 
    setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN); 

更新你的主題也可能會失去這些變化,所以請將此代碼放在另一個的functions.php,這是你的孩子,主題文件夾下你當前活動的主題。希望對你有幫助。

+4

不要編輯WordPress的核心文件,這是一個可怕的想法。 – Mike

0

以下步驟解決我的問題

上的wp-config.php文件

//define('WP_CACHE', true); // Added by W3 Total Cache Block this line 
//define("COOKIE_DOMAIN", "www.domain.com"); Block this line 

刪除從以下的wp-content

object-cache.php 
advanced-cache.php 
db.php 
0

我創建了多站點安裝很久以前,當您需要的文件一個用於域映射的插件。所以我有文件'/wp-content/sunrise.php',並在wp-config define('SUNRISE', 'on');它一直工作得很好,直到最近更新WordPress。

我在觀看的debug.log這些錯誤:

Undefined index: HTTP_HOST in ../public_html/wp-content/sunrise.php on line 10 
Undefined index: HTTP_HOST in ../public_html/wp-includes/ms-settings.php on line 57 

所以我刪除了日出文件和WP-配置日出定義,並添加@ max4ever/@ duck_boy的cookie定義到WP-config文件:

define('ADMIN_COOKIE_PATH', '/'); 
define('COOKIE_DOMAIN', ''); 
define('COOKIEPATH', ''); 
define('SITECOOKIEPATH', ''); 

解決了這個問題。我現在可以登錄了!注意:我試過這個定義,它也起作用。取自Multisite Setup Guide

define('COOKIE_DOMAIN', $_SERVER[ 'HTTP_HOST' ]); 
相關問題