Sau khi di chuyển máy chủ, trang chủ chỉ hoạt động.


33

Gần đây tôi đã thay đổi lưu trữ trang web WordPress của tôi sang VPS.net . Tôi đã di chuyển tất cả các tập tin của mình và nhập cơ sở dữ liệu. Mọi thứ dường như đều ổn cho đến khi tôi nhấp vào một liên kết và nhận thấy rằng tất cả các trang của tôi đang mang lại một 404 ngoại trừ trang chủ.

URL trang web là http://inksquared.com


Câu trả lời:


42

Tôi đoán bạn nhận được http: // yoursite nhưng http: // yoursite / anything

Tôi đã có một vấn đề tương tự và nó đã được giải quyết khi tôi thay đổi

các httpd.conftừ

AllowOverride None

đến

AllowOverride All

Theo sự hiểu biết của tôi, nó sẽ .htaccesscó hiệu lực.


6
Cái này làm việc cho tôi Hầu hết mọi người quên mất điều này.
qasimzee

1
Điều này cũng làm việc với tôi, chỉ phải thay đổi nó trong phần apache2.confcho vị trí của các tệp máy chủ của tôi, /var/wwwtrong trường hợp của tôi
sponrad

1
Đây là một phần của câu trả lời cho tôi. Tôi đã thêm vào AllowOverride Allcấu hình trang web, nhưng tôi cũng đã thêm Options FollowSymLinks. Sau đó tôi đã có thể sử dụng permalinks tùy chỉnh, nó cũng tạo ra một tệp .htaccess gốc thích hợp. Sau đó mọi thứ đã hoạt động.
boot13

1
Và đừng quên khởi động lại apache! "sudo dịch vụ apache2 khởi động lại"
gradosevic

1
Nó đã làm việc. Đảm bảo bạn thay đổi tùy chọn AllowOverride tại các vị trí trong tệp conf.
Najeeb

44

Hãy thử xóa quy tắc mod_rewrite của bạn:

Bảng điều khiển -> Cài đặt -> Permalinks

Lưu cài đặt (không cần thực hiện bất kỳ thay đổi nào)


7
Không cần phải tiết kiệm, thực sự. Các quy tắc được xóa chỉ bằng cách truy cập trang đó và một phần của việc xóa các quy tắc liên quan đến việc viết vào .htaccess.
John P Bloch

Tôi học được điều gì đó mới mỗi ngày ... :)
Chip Bennett

@john bạn có chắc rằng chỉ cần tải trang ghi vào .htaccess nếu cần? Tôi đã có ấn tượng rằng chỉ viết lại_rules trong cơ sở dữ liệu được tuôn ra.
Ashfame

wp-admin / options-permalinks.php cuộc gọi flush_rewrite_rules(), một wrapper cho WP_Rewrite::flush_rules(), trong đó, nếu $hardtrue(mà nó là khi gọi trên trang đó) và chức năng save_mod_rewrite_rulestồn tại (quy định tại wp-admin/includes/misc.php, bao gồm trong tất cả các trang quản trị), nó gọi save_mod_rewrite_rules(). Xem định nghĩa của hàm đó tại đây: core.trac.wordpress.org/browser/trunk/wp-admin/includes/ chủ
John P Bloch

Hàm thực sự ghi các quy tắc viết lại thành .htaccess được gọi insert_with_markers(được sử dụng ở save_mod_rewrite_rules()trên), được định nghĩa ở đây: core.trac.wordpress.org/browser/trunk/wp-admin/includes/ trộm
John P Bloch

27

Tôi đã phải đối mặt với cùng một vấn đề.

Tôi đã làm như sau để giải quyết nó trên Ubuntu Server:

  1. Trong /etc/apache2/apache2.conf , chỉnh sửa AllowOverride Không có cho / var / www / thành AllowOverride All

  2. Nhập lệnh sau để bật mod_rewrite cho .htaccess

sudo a2enmod viết lại

  1. Khởi động lại máy chủ apache của bạn:

sudo dịch vụ apache2 khởi động lại

Vấn đề đã được giải quyết !!!


Cảm ơn, tôi không thể sửa lỗi này với bất kỳ đề xuất nào khác, nhưng a2enmod rewriteđã thực hiện thủ thuật này.
Martin McCallion

+1 Để đề cập đến mod viết lại. Không nhận ra rằng điều này không được bật theo mặc định.
bản địa

Chắc chắn cần thiết sudo a2enmod rewriteđể có được wokring này, cảm ơn!
Huskie69

1
Cảm ơn! Lệnh a2enmod rewriteđã làm cho tôi lừa.
Lucas Basquerotto

Cảm ơn Avinash! Tương tự với Lucas, việc viết lại a2enmod đã tạo ra mánh khóe cho tôi
Jero Dungog

1

Lý do rất có thể là các .htaccesstập tin đã không được sao chép qua. Trên Mac OS X và trong một số ứng dụng FTP, tệp này được coi là "ẩn" vì nó bắt đầu bằng a .. Nếu bạn đi tới phần Cài đặt -> Permalinks trong phần quản trị viên của mình, bạn có thể tạo lại tệp này, nhưng có lẽ tốt nhất là tìm phiên bản bạn đã có trước đó và sử dụng lại (đặc biệt là nếu bạn sử dụng plugin lưu trữ).


1

Trong Ubuntu 14.04 - tệp 000-default.conf có thể được tìm thấy ở đây/etc/apache2/sites-available

Hoặc nếu bạn chạy nhiều wp, cài đặt máy chủ ảo sẽ là tên tệp cấu hình của bạn. ví dụ: tên miền

Bạn phải thay thế AllowOverride NoneđểAllowOverride All

Hy vọng điều này sẽ làm việc.


0

Bạn có nhận được một máy chủ web 404 hoặc WordPress 404 không? Nếu đó là máy chủ web 404, rất có thể bạn đã không sao chép tệp htaccess gốc từ cài đặt cũ hoặc nó không có quyền chính xác để chạy.

Mục khắc phục sự cố đầu tiên của tôi sẽ là kiểm tra và xem liệu tệp htaccess có tồn tại trong thư mục gốc hay không. Và nếu vậy, những gì nó chứa.


Đã kiểm tra tệp .htaccess. Nó chứa cùng một mã xuất hiện trong phần permalink của bảng quản trị wordpress. Tôi đã thay đổi các quyền thành có thể ghi và có thể thấy không có thay đổi rõ ràng.
mikeyrocks

3
@mikeyrocks Hmm ... một khả năng khác là máy chủ mới của bạn không bật mod_rewrite. Quan trọng: bạn đang nhận được một máy chủ 404 (trang trắng đơn giản có nội dung "không tìm thấy") hoặc WordPress 404 (được tạo kiểu như phần còn lại của trang web của bạn)?
MathSmath
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.