WordPress memberi saya 404 halaman tidak ditemukan untuk semua halaman kecuali beranda

115

Tiba-tiba saya membuka situs WordPress saya dan semua halaman memberi saya halaman 404 halaman tidak ditemukan. Saya berasumsi bahwa masalahnya terletak pada struktur tautan permanen, yang saya berani bersumpah tidak menyentuhnya. Pengaturan tautan permanen ada di "bulan dan nama".

Saya telah meneliti contoh serupa dari masalah ini secara online dan banyak hubungannya dengan .htaccessfile? Saya mencoba menemukan, tetapi saya tidak bisa. Mungkin entah bagaimana itu terhapus? Dimana itu seharusnya ditempatkan.

Setiap saran akan membantu

dan tentu saja saya dapat melihat file tersembunyi.

Adam
sumber
Sarankan Anda menanyakan hal ini juga di wordpress.stackexchange.com .
James Wiseman

Jawaban:

95

.htaccess adalah file tersembunyi, jadi Anda harus mengatur semua file agar terlihat di ftp Anda.

Saya sarankan Anda mengembalikan struktur tautan permanen Anda ke default (? P = ID) sehingga Anda memastikan bahwa .htaccess adalah masalahnya.

Setelah itu, Anda cukup menetapkan kembali struktur "bulan dan nama", dan melihat apakah berhasil.

PS: Sudahkah Anda mengupgrade ke 3.1? Saya telah melihat beberapa orang dengan masalah plugin dalam kasus ini.

Rochester Oliveira
sumber
1
ya saya telah menunjukkan file tersembunyi. Saya telah beralih dari default ke perma dan berfungsi secara default. Juga, apakah wordpress memperbarui dirinya sendiri atau sesuatu? Saya perhatikan bahwa ketika saya masuk, saya memiliki bilah tugas admin baru di situs web saya, yang tidak saya miliki sebelumnya. Saya tidak tahu bagaimana itu sampai di sana.
Adam
seseorang keliru memperbarui ke 3.1, sehingga bentrok dengan plugin
Adam
1
Hilang .htaccessjuga dapat menyebabkan masalah ini, apa pun yang Anda perbaiki tautan permanennya, jadi periksa dulu, tidak tersembunyi atau hilang
Osify
1
Cukup login ke admin WordPress dan simpan parmalinks lagi. Ini akan menghasilkan file .htaccess atau memperbarui yang sudah ada.
Keyur Patel
Saya telah mencoba menggunakan admin dan memperbarui file .htaccess secara manual tetapi masih masalah yang sama. Nonaktifkan Plugin juga tetapi tidak memperbaiki masalah tautan permanen.
Jaymin
56

Pada dasarnya file .htaccess harus ada dan httpd.conf harus benar.

Dalam kasus saya, saya mengubah file /etc/apache2/apache2.conf di bagian:

<Directory "/var/www/html">

Garis yang diubah adalah:

AllowOverride None

untuk

AllowOverride All

Dan mulai ulang server web dengan

systemctl restart apache2
georgeos
sumber
1
terima kasih, itu membantu. Dalam kasus saya, pengaturan AllowOverride tidak ada.
lap
1
Ini memperbaikinya untuk saya juga. Saya menggunakan scotchbox gelandangan untuk apa nilainya.
Matt Kaye
2
Ini hampir selalu menjadi masalah. Harus menjadi jawaban teratas.
Noel Baron
Ini mengoreksi masalah untuk- Harus menjadi jawaban yang diterima
Charles
52

Memperbaiki masalah yang sangat sederhana jika Anda menggunakan permalinks selain defaultseperti Day and name, Month and name, Numeric, Post nameatau Custom Structure, Anda hanya perlu

Masuk ke area admin Anda: Settings > Permalinksyang seharusnya:http://yoursite.com/wp-admin/options-permalink.php

Pilih Defaultpengaturan tautan permanen , lalu simpan perubahan

Kemudian Anda dapat mengembalikannya lagi ke pilihan tautan permanen sebelumnya atau menyimpannya defaultsesuai keinginan

Perhatikan bahwa masalah ini dapat terjadi saat Anda memindahkan situs Anda dari domain atau lokasi ke yang lain.

usama sulaiman
sumber
1
Ini agak membantu saya, saya mengalami beberapa kesalahan basis data dan setelah itu semua halaman saya 404. Mengalihkan opsi tautan permanen ke opsi lain (seperti biasa) lalu kembali ke opsi default memperbaiki semua tautan saya!
PaulBGD
Senang mendengarnya :)
usama sulaiman
2
Jawaban sempurna +100
handiansom
Bagaimana saya bisa kembali ke pengaturan tautan permanen default ketika bahkan mysite.com/wp-admintidak berfungsi?
J86
Jawaban sempurna +10086
Aflext
29

Jika perilaku default ( example.com/?p=42) berfungsi, Anda harus:

  • Ubah ke gaya tautan permanen pilihan Anda:, Admin: Settings > Permalinksdan klik Simpan. Terkadang itu memperbaiki masalah. Jika tidak:
  • Verifikasi bahwa file /path/to/wordpress/.htaccesstelah diubah dan sekarang menyertakan baris RewriteEngine On. Jika tidak menyertakan baris, itu adalah masalah izin Wordpress.
  • Pastikan bahwa modul 'rewrite' telah dimuat: buat file PHP dengan

    <?php
      phpinfo()
    ?>

    di dalamnya, buka di browser dan cari mod_rewrite. Ini harus ada di bagian 'Modul yang Dimuat'. Jika tidak, aktifkan - Lihat index.htmlfile default apache Anda untuk detailnya - di Ubuntu, Anda melakukannya dengan helper a2enmod.

  • Verifikasi bahwa server apache sedang melihat .htaccessfile tersebut. terbuka httpd.conf- atau alternatif Ubuntu /etc/apache2/apache2.conf,. Di dalamnya, Anda harus memiliki sesuatu seperti

    <Directory /path/to/wordpress>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
  • Setelah melakukan perubahan ini, jangan lupa untuk me-restart server apache Anda. sudo service apache2 restart

tsvikas
sumber
20

JIKA semua ini tidak berhasil, .htaccess Anda benar, dan trik permalinks tidak berhasil, Anda mungkin belum mengaktifkan mod rewite apache2 Anda .

Saya menjalankan ini dan masalah saya terpecahkan:

 sudo a2enmod rewrite 
David Valenza
sumber
Cari mod_rewritedi phpinfo();halaman untuk memeriksa apakah Anda telah mengaktifkannya. ada diLoaded Modules dariapache2
vanduc1102
9

Di dalam antarmuka admin WordPress, lakukan hal berikut:

  1. Buka pengaturan admin

  2. Klik tautan permanen dan pilih nama posting di tombol radio.

  3. Gulir ke bawah dan Anda akan melihat .htaccesskode seperti ini.

    <IfModule mod_rewrite.c>
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule> 
  4. Salin kode dan tempel di .htaccessfile.
Mahesh singh chouhan
sumber
1
Di mana saya menemukan ini? Tidak ada yang seperti ini di tautan permanen.
Boris_yo
@Boris_yo Sejauh yang saya tahu, aturan hanya akan muncul jika htaccessfile Anda notdapat ditulis .. jika wordpress hanya akan menulisnya sendiri ...
Obmerk Kronen
1
Jawaban ini luar biasa! dan tidak akan pernah tahu tentang itu kecuali menggunakan WP di Linux. Terima kasih banyak
Mayeenul Islam
7

Kesalahan ini disebabkan karena dimatikannya mod rewrite di dokumen httpd.conf apache, cukup hapus komentarnya dan nikmati tautan permanen yang ramah seo

Asif Khan
sumber
4
  • Periksa apakah direktori di .htaccess sudah benar
  • Periksa kolom "siteurl" dan "home" apakah benar
José Carlos
sumber
1
Bagi saya, rumah adalah masalahnya. Saya memperbaikinya dan semua kembali bekerja. Obrithankyou José Carlos.
Tiago Gouvêa
4

Kami memiliki masalah yang sama dan menyelesaikannya dengan memeriksa error.log dari host virtual kami. Kami menemukan pesan berikut:

AH00670: Opsi FollowSymLinks dan SymLinksIfOwnerMatch keduanya tidak aktif, sehingga direktif RewriteRule juga dilarang karena kemampuannya yang serupa untuk menghindari pembatasan direktori: / srv / www / htdocs / wp-intranet /

Solusinya adalah mengatur Options Alldan AllowOverride Alldalam konfigurasi host virtual kami.

Hitam
sumber
3

Jika Anda memiliki akses FTP ke akun Anda:

Pertama, masuk ke wp-admin Anda dan buka Pengaturan> Permalinks

Anda akan melihat sesuatu di bagian bawah yang berbunyi:

"Jika file .htaccess Anda dapat ditulis, kami dapat melakukannya secara otomatis, tetapi tidak demikian aturan mod_rewrite yang harus Anda miliki di file .htaccess Anda. Klik di kolom dan tekan CTRL + a untuk memilih semua."

Jika ini benar, lakukan hal berikut:

  1. Masuk ke preferensi untuk klien FTP Anda dan pastikan file tersembunyi ditampilkan (bervariasi tergantung pada klien FTP Anda) - Jika Anda tidak melakukannya, Anda tidak akan dapat menemukan file htaccess Anda

  2. Buka folder tempat direktori wp-admin, wp-content, wp-Included Anda. Periksa file .htaccess. Jika ada, lompat ke langkah 4

  3. Jika tidak ada, buat file kosong baru di program FTP Anda yang disebut .htaccess

  4. Ubah CHMOD untuk file .htaccess Anda menjadi 666 (preferensi Anda tentang bagaimana Anda ingin melakukan ini)

  5. Kembali ke halaman Permalinks Anda dan edit struktur tautan yang Anda inginkan. Masalah harus diselesaikan!

  6. Pastikan untuk mengubah chmod dari file htaccess kembali ke 644 setelah Anda selesai.

Baru saja mengalami masalah yang sama dan sepertinya langsung memperbaikinya! Semoga berhasil!

JEFF B
sumber
"mod_rewrite" ini masalahnya, saya lupa mengaktifkannya! Terima kasih :)
Chemaclass
3

Sebagian besar masalah ini diperbaiki hanya dengan mengunjungi halaman Pengaturan -> Permalink di admin WordPress dan klik Simpan (seperti yang telah ditunjukkan beberapa jawaban lain). Saat halaman ini diakses, WordPress menulis ulang arahan di .htaccessfile yang secara ajaib memperbaiki masalah. Masalah ini sering terjadi setelah memindahkan situs (situs rusak karena .htaccesstertinggal atau pengaturan perlu diperbarui).

Jika WordPress tidak memiliki izin yang tepat untuk menulis .htaccessfile, pemberitahuan akan muncul di bagian atas halaman dan instruksi lebih lanjut di bagian bawah saat pengaturan disimpan. Dalam hal ini Anda perlu mengedit .htaccessfile sendiri atau, lebih baik, memperbaiki izin pada file itu. File tersebut berada di root penginstalan WordPress. cdke dalam direktori dan sudo chmod 644 .htaccess. Anda mungkin juga ingin memeriksa apakah file tersebut milik grup yang tepat dan perubahan yang diperlukan dengan chown. Tanyakan penyedia hosting Anda jika Anda tidak tahu cara melakukannya.

Jika Anda menggunakan hosting bersama, mungkin itu saja yang dapat Anda lakukan. Jika Anda masih memiliki masalah, Anda mungkin ingin berbicara dengan dukungan penyedia hosting Anda. Jika tidak, pastikan penggunaan .htaccessfile diaktifkan di server, seperti yang sudah disarankan @georgeos. Perhatikan bahwa httpd.confitu tidak selalu digunakan ( Ubuntu menunjukkan itu sudah usang tetapi dokumen resmi Apache masih mengatakan itu sering kali merupakan file konfigurasi utama ). /etc/httpd/conf/httpd.confdan /etc/apache2/apache2.conftampaknya menjadi tempat paling umum untuk file ini. Temukan blok untuk folder publik, biasanya <Directory /var/www/>dan pastikan bahwa AllowOverridearahan disetel ke All. Jika disetel ke None, .htaccessfile Anda akan diabaikan begitu saja oleh server.

mrtnmgs
sumber
2

Anda mungkin memiliki .htaccess yang tidak diizinkan di pengaturan hosting. Pengaturan ke permalink default akan berfungsi dalam kasus itu.

Fanky
sumber
1

Kasus 1: - Mari kita pikirkan jika memigrasi situs dari satu hosting ke hosting lain jika melihat masalah seperti ini.

Solusi: - Cukup buka kode file .htaccess server lama, lalu masukkan file .htaccess server baru. 99% itu saya akan berhasil.

Navruk
sumber
0

Saya memiliki masalah yang sama dan jadi saya menghapus Apache dan membuatnya lagi dan masalah terpecahkan.

boomz
sumber
0

Cukup Arahkan ke Pengaturan-> Permalink di dasbor Anda dan kemudian tombol Simpan Perubahan di yang terakhir. \

Deepak Sharma
sumber
0

Saya baru saja mengubah tautan permanen menjadi 'bulan dan hari' dari semua posting dengan masuk ke pengaturan> tautan permanen.

Sekarang semua posting terbuka dan berfungsi dengan baik.

Sekali lagi, saya mengganti nama ke semua posting menjadi tautan permanen sebenarnya. Ini lagi bekerja dengan baik.

Metode ini berhasil untuk saya :-)

Shani Deshwal
sumber
0

Untuk pengguna nginx

Gunakan yang berikut ini di file conf untuk situs Anda (biasanya /etc/nginx/sites-available/example.com)

location / { try_files $uri $uri/ /index.php?q=$uri&$args; }

Ini menyerahkan semua permintaan tautan permanen ke index.php dengan string URI dan argumen yang diberikan. Lakukan systemctl reload nginxuntuk melihat perubahan dan tautan non-beranda Anda akan dimuat.

ABCTaylor
sumber
0

Sebelum mencoba melakukan perubahan tautan permanen atau konfigurasi server, periksa file .htaccess Anda. Ini sebagian besar adalah masalah file .htaccess yang rusak atau kosong. Setel ulang file htaccess ke default

# 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
Mustafa sabir
sumber
0

setelah 2 hari yang panjang, solusinya adalah menambahkan options +FollowSymLinkske bagian atas .htaccessfile saya .

Ahmad Ali
sumber
-1

Saya mengalami masalah ini belum lama ini. Saya telah mengatur ulang tautan permanen saya ke default atau hanya menyimpannya, memperbarui tema / inti ke (4.7.4) / plugin, menonaktifkan semua plugin, beralih ke tema default, database yang dioptimalkan, .htaccess sudah default, memeriksa izin file, mod_rewrite aktif .

Sejauh ini tidak ada yang berhasil, yang berhasil adalah posting, halaman baru, halaman / kontak KECUALI untuk halaman lama.

Pada dasarnya, halaman / URL yang tidak berfungsi adalah:

/breeding
/training
/training/*
/breeding/*

Terakhir, saya menemukan file-file ini di folder root:

/breeding.php dan /training.php

Saya mengganti nama kedua file dan halaman di atas berfungsi.

Loreto Gabawa Jr.
sumber