Setelah migrasi server hanya beranda yang berfungsi

33

Saya baru saja mengubah hosting situs WordPress saya ke VPS.net . Saya telah memindahkan semua file saya dan mengimpor database. Semuanya tampak baik-baik saja sampai saya mengklik sebuah tautan dan memperhatikan bahwa semua halaman saya menghasilkan 404 kecuali beranda.

URL situs adalah http://inksquared.com

mikeyrocks
sumber

Jawaban:

42

Saya kira Anda mendapatkan http: // situs Anda tetapi http: // situs Anda / apa pun

Saya memiliki masalah yang sama dan diselesaikan ketika saya berubah

yang httpd.confdari

AllowOverride None

untuk

AllowOverride All

Sesuai pemahaman saya itu akan membuat .htaccessefek.

San
sumber
6
Yang ini berhasil untuk saya. Sebagian besar orang lupa tentang ini.
qasimzee
1
Ini bekerja untuk saya juga, hanya perlu mengubahnya di bagian apache2.confuntuk lokasi file server saya, /var/wwwdalam kasus saya
sponrad
1
Ini adalah bagian dari jawaban untuk saya. Saya menambahkan AllowOverride Allke konfigurasi situs, tetapi saya juga menambahkan Options FollowSymLinks. Saya kemudian dapat menggunakan permalinks khusus, yang juga membuat file .htaccess root yang sesuai. Setelah itu semuanya bekerja.
boot13
1
Dan jangan lupa untuk me-restart apache! "sudo service apache2 restart"
gradosevic
1
Itu berhasil. Pastikan Anda mengubah opsi AllowOverride di lokasi dalam file conf.
Najeeb
44

Coba siram aturan mod_rewrite Anda:

Dasbor -> Pengaturan -> Permalinks

Simpan pengaturan (tidak perlu melakukan perubahan)

Chip Bennett
sumber
7
Tidak perlu menabung, sebenarnya. Aturan memerah hanya dengan mengunjungi halaman itu, dan bagian dari pembilasan aturan melibatkan penulisan ke .htaccess.
John P Bloch
Saya belajar sesuatu yang baru setiap hari ... :)
Chip Bennett
@ John Anda yakin hanya memuat halaman menulis ke .htaccess jika perlu? Saya mendapat kesan bahwa hanya rewrite_rules dalam database yang disiram.
Ashfame
wp-admin / options-permalinks.php panggilan flush_rewrite_rules(), pembungkus untuk WP_Rewrite::flush_rules(), yang, jika $hardini true(yang itu saat dipanggil pada halaman itu) dan fungsi save_mod_rewrite_rulesada (didefinisikan dalam wp-admin/includes/misc.php, termasuk di semua halaman admin), itu panggilan save_mod_rewrite_rules(). Lihat definisi fungsi itu di sini: core.trac.wordpress.org/browser/trunk/wp-admin/includes/…
John P Bloch
Fungsi yang benar-benar menulis aturan penulisan ulang ke .htaccess disebut insert_with_markers(digunakan di save_mod_rewrite_rules()atas), didefinisikan di sini: core.trac.wordpress.org/browser/trunk/wp-admin/includes/…
John P Bloch
27

Saya telah menghadapi masalah yang sama.

Saya melakukan yang berikut ini untuk menyelesaikannya di Server Ubuntu:

  1. Di /etc/apache2/apache2.conf , edit AllowOverride None untuk / var / www / ke AllowOverride All

  2. Ketik perintah berikut untuk mengaktifkan mod_rewrite untuk .htaccess

sudo a2enmod menulis ulang

  1. Mulai ulang server apache Anda:

sudo service apache2 restart

Masalahnya dipecahkan !!!

Avinash
sumber
Terima kasih, saya tidak bisa memperbaiki ini dengan saran lain, tetapi a2enmod rewritelakukan triknya.
Martin McCallion
+1 Untuk menyebutkan mod penulisan ulang. Tidak menyadari bahwa ini tidak diaktifkan secara default.
Native Coder
Pasti diperlukan itu sudo a2enmod rewriteuntuk mendapatkan wokring ini, terima kasih!
Huskie69
1
Terima kasih! Perintah a2enmod rewriteitu membantu saya.
Lucas Basquerotto
Terima kasih Avinash! Sama dengan Lucas, penulisan ulang a2enmod membantu saya
Jero Dungog
1

Alasannya kemungkinan besar .htaccessfile tersebut tidak disalin. Pada Mac OS X, dan dalam beberapa aplikasi FTP, file ini dianggap "tersembunyi" karena dimulai dengan a .. Jika Anda masuk ke bagian Pengaturan -> Permalinks di bagian admin Anda, Anda dapat membuat ulang file ini, tetapi mungkin yang terbaik untuk menemukan versi yang Anda miliki sebelumnya dan menggunakannya lagi (terutama jika Anda menggunakan plugin caching).

Gavin Anderegg
sumber
1

Di Ubuntu 14.04 - file 000-default.conf dapat ditemukan di sini/etc/apache2/sites-available

Atau jika Anda menjalankan banyak wp, pengaturan host virtual akan menjadi nama file konfigurasi Anda. mis. domain.conf

Anda harus mengganti AllowOverride NonekeAllowOverride All

Semoga ini berhasil.

Sam
sumber
0

Apakah Anda mendapatkan server web 404 atau WordPress 404? Jika ini adalah server web 404, kemungkinan besar Anda tidak menyalin file root htaccess dari instalasi lama, atau tidak memiliki izin yang benar untuk dijalankan.

Item pemecahan masalah pertama saya adalah memeriksa dan melihat apakah ada file htaccess di root. Dan jika demikian, apa isinya.

MathSmath
sumber
Memeriksa file .htaccess. Ini berisi kode yang sama yang muncul di bagian permalink panel admin wordpress. Saya mengubah izin menjadi dapat ditulis dan tidak dapat melihat perubahan yang terlihat.
mikeyrocks
3
@mikeyrocks Hmm ... kemungkinan lain adalah server baru Anda tidak mengaktifkan mod_rewrite. Penting: apakah Anda mendapatkan server 404 (halaman putih polos yang bertuliskan "tidak ditemukan"), atau WordPress 404 (bergaya seperti situs lainnya)?
MathSmath