2014-06-19 20 views
5

Một nhà phát triển đồng nghiệp đã xây dựng trang web WordPress trên máy cục bộ của mình. Sau đó, ông đã di chuyển toàn bộ cài đặt vào máy chủ. Đương nhiên, tất cả các liên kết trong sql đã được đặt thành localhost:8888. Sau đó tôi chạy một bản cập nhật SQL để sửa các liên kết để chúng chỉ vào miền chính xác (mà ngay bây giờ là một liên kết ipaddress/~username). Tôi đã kiểm tra lại công việc của mình và tất cả đều đúng.Liên kết WordPress tất cả chuyển hướng đến URL kép

UPDATE wp_options SET option_value = replace(option_value, 'http://olddomain.com', 'http://newdomain.com'); 
UPDATE wp_options SET option_value = replace(option_value, 'feed://www.olddomain.com', 'feed://newdomain.com'); 
UPDATE wp_posts SET guid = replace(guid, 'http://olddomain.com','http://newdomain.com'); 
UPDATE wp_posts SET post_content = replace(post_content, 'http://olddomain.com', 'http://newdomain.com'); 
UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://olddomain.com', 'http://newdomain.com'); 

Tôi đã sử dụng mã hóa đó, nhưng với thông tin tên miền thích hợp trong đó.

Vì vậy, bây giờ đây là những gì đang xảy ra.

Bất cứ khi nào tôi truy cập trang chủ, nó hoạt động nhưng hình ảnh không hiển thị. sau đó tôi bấm vào một liên kết, hoặc đi đến teh wp-admin, và nó hiển thị url hai lần trong thanh địa chỉ. để nó đi một cái gì đó như:

http://newdomain.com/~user/http://newdomain.com/~user/post-name-blah-blah-blah 

file .htaccess là tất cả mặc định,

Điều gì có thể gây ra tất cả (nếu WordPress là trong thư mục con cần có một quy tắc viết lại cho rằng thay vì chỉ /?) liên kết trên các trang web để đi đến cùng một url hai lần, nếu không ai trong số họ được liệt kê như thế trong SQL?

CẬP NHẬT:

Được rồi, vì vậy tôi đã xóa toàn bộ cơ sở dữ liệu và thiết lập lại, sau đó trang web hoạt động tốt. tất nhiên điều đó có nghĩa là tôi mất tất cả nội dung của mình. Tôi đoán tôi hơi say lên truy vấn sql của một nơi nào đó xuống dòng. Nhưng tôi không thể tìm thấy bất cứ nơi nào có hai url, hoặc thậm chí sẽ gây ra điều này. Nhiều cập nhật hơn khi tôi tìm ra vấn đề của mình.

Trả lời

14

Tôi giải quyết nó! Hy vọng rằng nếu có ai khác đến đây và có cùng một sai lầm, điều này sẽ giúp ích. Trong bảng wp_options, các hàng cho site_urlhome cần phải có http:// ở phía trước. Bằng cách nào đó trên của tôi, truy vấn sql của tôi busted phần đó. Tất nhiên tôi đã không nhận thấy vì địa chỉ có vẻ chính xác, bởi vì điều đó thường hoạt động. nhưng trong trường hợp này nó gây ra một vòng lặp không bao giờ kết thúc với một số liên kết, và trong những người khác chỉ tăng gấp đôi địa chỉ.

+1

Bạn đã lưu ngày của tôi –

3

Trong khi thực hiện các điều chỉnh cơ sở dữ liệu bạn đã làm có thể hoạt động, tôi thấy chúng có vấn đề. Thay vào đó bất cứ khi nào một di chuyển một trang web WordPress, bạn cần phải đúng cách điều chỉnh cấu hình trong WordPress của bạn cài đặt trong file wp-config.php trên các biến sau:

define('WP_SITEURL', 'http://newdomain.com/wordpress'); 
define('WP_HOME', 'http://newdomain.com/'); 
define('WP_CONTENT_DIR', '/path/to/your/wordpress/wp-content'); 
define('WP_CONTENT_URL', 'http://newdomain.com/wp-content'); 

Điều này sẽ buộc bạn cài đặt để sử dụng newdomain.com URL. Ngoài ra, khi bạn làm điều này lần đầu tiên thiết lập các thiết lập RELOCATE để true như thế này:

define('RELOCATE', true); 

Đó cơ bản cho WordPress để rejigger (đó là thuật ngữ của tôi cho nó) nó được lưu trữ cài đặt cho các thiết lập mới. Và sau khi bạn đã nạp lại trang web của bạn & nó hoạt động như mong đợi, thiết RELOCATE thiết lập trở lại false như thế này:

define('RELOCATE', false); 

Nhưng bạn cũng nói điều này:

(nếu WordPress là trong thư mục con nên nó có quy tắc viết lại cho thay vì chỉ /?)

Điều đó phải thay đổi nếu bạn đặt WordPress trong thư mục con. Vì vậy, giả sử rằng WordPress nằm trong một thư mục con được gọi là coolsite/.Sau đó, thay đổi mặc định WordPress .htaccess từ điều này:

# 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 

Để làm điều này; lưu ý cách tôi thay đổi RewriteBase & cuối cùng RewriteRule:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /coolsite/ 
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /coolsite/index.php [L] 
</IfModule> 
# END WordPress 
+1

Cảm ơn bạn đã cho tôi biết về cách làm tốt hơn. Thật không may, không có thứ gì trong số này thay đổi bất cứ điều gì đối với tôi. Tôi vẫn nhận được những lỗi này giống như trước đây. – DauntlessRob

0

Đặt http:// ở phía trước site_urlHome_url trong bảng wp_option của cơ sở dữ liệu của bạn.

Các vấn đề liên quan