WordPress bana ana sayfa dışındaki tüm sayfalarda bulunamadı 404 sayfa veriyor


115

Birden bire WordPress web siteme gidiyorum ve tüm sayfalar bana 404 sayfa bulunamadı sayfası veriyor. Sorunun dokunmadığıma yemin edebileceğim kalıcı bağlantı yapısında olduğunu varsayıyorum. Kalıcı bağlantı ayarı "ay ve ad" üzerindedir.

Bu sorunun benzer örneklerini çevrimiçi olarak araştırdım ve çoğunun .htaccessdosyayla ilgisi var mı? Bulmaya çalıştım ama yapamıyorum. Belki bir şekilde silinmiştir? Nerede olması gerekiyordu.

Herhangi bir öneri yardımcı olacaktır

ve tabii ki gizli dosyaları görebiliyorum.


Bunu wordpress.stackexchange.com adresinden de sormanızı öneririz .
James Wiseman

Yanıtlar:


95

.htaccess gizli bir dosyadır, bu nedenle tüm dosyaları ftp'nizde görünür olarak ayarlamalısınız.

Kalıcı bağlantı yapınızı varsayılana (? P = ID) döndürmenizi öneririm, böylece sorunun .htaccess olduğundan emin olursunuz.

Bundan sonra, "ay ve ad" yapısını tekrar ayarlayabilir ve çalışıp çalışmadığını görebilirsiniz.

Not: 3.1'e yükselttiniz mi? Bu durumda eklenti sorunları olan bazı insanlar gördüm.


1
evet gizli dosyaları gösterdim. Varsayılantan perma'ya gidip geldim ve varsayılan olarak çalışıyor. Ayrıca, wordpress kendini mi güncelliyor? Oturum açtığımda web sitemde daha önce sahip olmadığım yeni bir yönetici görev çubuğunun olduğunu fark ettim. Oraya nasıl girdi bilmiyorum.
Adam

birisi yanlışlıkla 3.1'e güncelledi, bu yüzden bir eklentiyle çakıştı
Adam

1
Eksiklik .htaccessde bu soruna yol açabilir, kalıcı bağlantıyı ne düzeltirseniz düzeltin, bu yüzden önce bunu kontrol edin, gizli veya eksik değil
Osify

1
Basitçe WordPress yöneticisine giriş yapın ve parmalinkleri tekrar kaydedin. Bu bir .htaccess dosyası oluşturacak veya mevcut dosyayı güncelleyecektir.
Keyur Patel

Yönetici kullanmayı denedim ve .htaccess dosyasını manuel olarak güncelledim ama yine de aynı sorun. Eklentiyi de devre dışı bırakın, ancak kalıcı bağlantı sorununu çözmeyin.
Jaymin

56

Temel olarak .htaccess dosyası mevcut olmalı ve httpd.conf doğru olmalıdır.

Benim durumumda, /etc/apache2/apache2.conf dosyasını şu bölümde değiştirdim:

<Directory "/var/www/html">

Değiştirilen satır:

AllowOverride None

için

AllowOverride All

Ve web sunucusunu şununla yeniden başlatın:

systemctl restart apache2

1
teşekkürler, bu yardımcı oldu. Benim durumumda AllowOverride ayarı eksikti.
paçavra

1
Bu benim için de düzeltti. Değeri için serseri scotchbox kullanıyorum.
Matt Kaye

2
Bu neredeyse her zaman problemdir. En iyi cevap olmalı.
Noel Baron

Bu benim için sorunu düzeltti
Charles

52

Eğer başka Kalıcı kullandıysa bu sorunu Tespit çok basittir defaultgibi Day and name, Month and name, Numeric, Post nameveya Custom Structure, sadece gerek

Yönetici alanınıza giriş yapın: Settings > Permalinksolması gereken:http://yoursite.com/wp-admin/options-permalink.php

Kalıcı Defaultbağlantı ayarını seçin , ardından değişiklikleri kaydedin

Daha sonra onu önceki diğer kalıcı bağlantı seçiminize geri döndürebilir veya istediğiniz gibi tutabilirsiniz.default

Sitenizi bir etki alanından veya konumdan diğerine taşıdığınızda bu sorunun ortaya çıkabileceğini unutmayın.


1
Bu bana biraz yardımcı oldu, bazı veritabanı hatalarım oldu ve sonrasında tüm sayfalarım 404'tür. Kalıcı bağlantı seçeneğini başka bir seçeneğe (düz gibi) ve ardından varsayılan seçeneğe geri döndürmek tüm bağlantılarımı düzeltti!
PaulBGD

Bunu duyduğuma sevindim :)
usama sulaiman

2
Mükemmel cevap +100
handiansom

Çalışmıyorken bile Varsayılan kalıcı bağlantı ayarına nasıl geri dönebilirim mysite.com/wp-admin?
J86

Mükemmel cevap +10086
Aflext

29

Varsayılan davranış ( example.com/?p=42) çalışıyorsa, şunları yapmalısınız:

  • Tercih ettiğiniz kalıcı bağlantı stiline geçin: Admin: Settings > Permalinksve Kaydet'i tıklayın. Bazen sorunu düzeltir. Olmadıysa:
  • Dosyanın /path/to/wordpress/.htaccessdeğiştirildiğini ve şimdi satırı içerdiğini doğrulayın RewriteEngine On. Satırı içermiyorsa, bu bir Wordpress izinleri sorunudur.
  • "Yeniden yazma" modülünün yüklendiğini doğrulayın: bir PHP dosyası oluşturun

    <?php
      phpinfo()
    ?>

    içinde, tarayıcıda açın ve arayın mod_rewrite. 'Yüklü Modüller' bölümünde olmalıdır. Değilse, etkinleştirin - index.htmlAyrıntılar için apache varsayılan dosyanıza bakın - Ubuntu'da, bunu yardımcı ile yaparsınız a2enmod.

  • Apache sunucusunun .htaccessdosyaya baktığını doğrulayın . açık httpd.conf- veya Ubuntu'nun alternatifidir /etc/apache2/apache2.conf. İçinde bir şeye sahip olmalısın

    <Directory /path/to/wordpress>
      Options Indexes FollowSymLinks
      AllowOverride All
      Require all granted
    </Directory>
  • Bu değişiklikleri yaptıktan sonra apache sunucunuzu yeniden başlatmayı unutmayın. sudo service apache2 restart


20

Tüm bunlar işe yaramazsa, .htaccess'iniz doğrudur ve permalinks hilesi çalışmadıysa, apache2 rewite modunuzu etkinleştirmemiş olabilirsiniz .

Bunu çalıştırdım ve sorunum çözüldü:

 sudo a2enmod rewrite 

Ara mod_rewriteiçinde phpinfo();etkin varsa kontrol etmek için sayfa. Bu ise Loaded Modulesbirapache2
vanduc1102

9

WordPress yönetici arayüzünde aşağıdakileri yapın:

  1. Yönetici ayarına git

  2. Kalıcı bağlantıya tıklayın ve radyo düğmesinde gönderi adını seçin.

  3. Aşağı kaydırın ve .htaccessburada kodu göreceksiniz .

    <IfModule mod_rewrite.c>
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /wordpress/index.php [L]
    </IfModule> 
  4. Kodu kopyalayın ve .htaccessdosyaya yapıştırın .

1
Bunu nerede bulabilirim? Kalıcı bağlantılarda böyle bir şey yok.
Boris_yo

@Boris_yo Bildiğim kadarıyla kurallar sadece htaccessdosyanız notyazılabilir ise görünecektir .. eğer wordpress ise basitçe kendisi
yazacaktır

1
Bu cevap harika! ve Linux'ta WP kullanmadıkça bunu asla bilemeyeceksiniz. Çok teşekkürler
Mayeenul Islam

7

Bu hata, apache httpd.conf belgesinde yeniden yazma modunun devre dışı bırakılmasından kaynaklanıyor, sadece açıklamayı kaldırın ve seo dostu kalıcı bağlantıların keyfini çıkarın


4
  • .Htaccess üzerindeki dizinin doğru olup olmadığını kontrol edin
  • "Siteurl" ve "ana sayfa" alanlarının doğru olup olmadığını kontrol edin

1
Benim için sorun evdi. Düzeltirim ve hepsi işe geri döner. Çok teşekkür ederim José Carlos.
Tiago Gouvêa

4

Aynı sorunu yaşadık ve sanal ana makinemizin error.log dosyasını kontrol ederek çözdük. Aşağıdaki mesajı bulduk:

AH00670: FollowSymLinks ve SymLinksIfOwnerMatch seçeneklerinin her ikisi de kapalı olduğundan, RewriteRule yönergesi de benzer dizin kısıtlamalarını aşma yeteneği nedeniyle yasaklanmıştır: / srv / www / htdocs / wp-intranet /

Çözelti setine oldu Options Allve AllowOverride Allbizim sanal konak config.


3

Hesabınıza FTP erişiminiz varsa:

Öncelikle, wp-admin'e giriş yapın ve Ayarlar> Kalıcı Bağlantılar'a gidin.

Altta şunu yazan bir şey görmelisiniz:

".Htaccess dosyanız yazılabilir olsaydı, bunu otomatik olarak yapabilirdik, ancak bunlar .htaccess dosyanızda olması gereken mod_rewrite kuralları değildir. Alana tıklayın ve tümünü seçmek için CTRL + a tuşlarına basın."

Bu doğruysa aşağıdakileri yapın:

  1. FTP istemcinizin tercihlerine gidin ve gizli dosyaların görüntülendiğinden emin olun (FTP istemcinize bağlı olarak değişir) - Bunu yapmazsanız, htaccess dosyanızı bulamazsınız

  2. Wp-admin, wp-content, wp-includes dizinlerinin bulunduğu klasöre gidin. .Htaccess dosyasını kontrol edin. Varsa 4. adıma geçin

  3. Mevcut değilse, FTP programınızda .htaccess adında yeni bir boş dosya oluşturun.

  4. .Htaccess dosyanız için CHMOD'u 666 olarak değiştirin (bunu nasıl yapmak istediğinize dair tercihiniz)

  5. Kalıcı bağlantılar sayfanıza geri dönün ve istediğiniz bağlantı yapısını düzenleyin. Sorun çözülmeli!

  6. İşlemi tamamladıktan sonra htaccess dosyasının chmod'unu 644'e geri değiştirdiğinizden emin olun.

Sadece aynı problemi yaşadım ve anında çözdü gibiydi! İyi şanslar!


"mod_rewrite" sorun buydu, etkinleştirmeyi unuttum! Teşekkürler :)
Chemaclass

3

Çoğu zaman bu sorun, WordPress yöneticisindeki Ayarlar -> Kalıcı bağlantı sayfasını ziyaret ederek ve Kaydet'i tıklayarak (diğer birkaç yanıtın daha önce işaret ettiği gibi) giderilir. Bu sayfaya erişildiğinde, WordPress .htaccess, sorunu sihirli bir şekilde düzelten dosyadaki yönergeleri yeniden yazar . Sorun genellikle bir siteyi taşıdıktan sonra meydana gelir (site bozulur çünkü .htaccessgeride kalır veya ayarların güncellenmesi gerekir).

WordPress'in .htaccessdosyayı yazmak için doğru izinleri yoksa , sayfanın üstünde bir uyarı ve ayarlar kaydedildiğinde alt kısımda daha fazla talimat görünecektir. Bu durumda, .htaccessdosyayı kendiniz düzenlemeniz veya daha iyisi o dosyadaki izinleri düzeltmeniz gerekir. Dosya, WordPress kurulumunun kök dizinindedir. cddizine ve sudo chmod 644 .htaccess. Dosyanın doğru gruba ait olup olmadığını kontrol etmek ve gerekli olan değişikliği yapmak isteyebilirsiniz.chown . Bunu nasıl yapacağınızı bilmiyorsanız, barındırma sağlayıcınıza sorun.

Paylaşılan barındırma hizmetindeyseniz, muhtemelen tek yapabileceğiniz budur. Hala sorun yaşıyorsanız, barındırma sağlayıcısının desteğiyle konuşmak isteyebilirsiniz. Aksi takdirde, .htaccess@georgeos'un zaten önerdiği gibi, sunucuda dosyaların kullanımının etkinleştirildiğinden emin olun . Not httpd.confdaima kullanılmaz ( Ubuntu bunun kullanımdan kaldırıldı gösterir ama resmi Apaçi dokümanlar hala genellikle ana yapılandırma dosyası olduğunu söylüyor ). /etc/httpd/conf/httpd.confve /etc/apache2/apache2.confbu dosya için en yaygın yerler gibi görünüyor. Genellikle ortak klasörün bloğunu bulun ve yönergenin olarak ayarlandığından <Directory /var/www/>emin olun . Olarak ayarlanmışsa , dosyanız sunucu tarafından yok sayılır.AllowOverrideAllNone.htaccess



2

Webhost ayarlarında .htaccess'e izin verilmemiş olabilir. Varsayılan kalıcı bağlantılara ayarlamak bu durumda işe yarayacaktır.


1

Durum 1: - Bu tür bir sorunla karşılaşırsanız, siteyi bir hosting'den başka bir hostinge geçirip geçirmediğinizi düşünelim.

Çözüm: - Eski sunucu kopyası .htaccess dosya koduna gidin, ardından yeni sunucu .htaccess dosyasına yapıştırın. % 99 çalışacağım.


0

Bende de aynı sorun var ve bu yüzden Apache'yi kaldırıp yeniden yapıyorum ve sorun çözüldü.


0

Gösterge tablonuzda Ayarlar-> Kalıcı Bağlantı'ya gidin ve ardından sonuncusunda Değişiklikleri Kaydet düğmesine gidin. \



0

Ayar> kalıcı bağlantıya ging yaparak tüm gönderilerin kalıcı bağlantısını 'ay ve gün' olarak değiştirdim.

Artık tüm gönderiler açık ve iyi çalışıyor.

Yine, tüm gönderileri gerçek kalıcı bağlantısına göre yeniden adlandırdım. Yine iyi çalışıyor.

Bu yöntem benim için çalıştı :-)


0

Nginx kullanıcıları için

Siteniz için conf dosyanızda aşağıdakileri kullanın (genellikle /etc/nginx/sites-available/example.com)

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

Bu, bir URI dizgisi ve sağlanan argümanlarla index.php'ye yönelik tüm kalıcı bağlantı isteklerini devre dışı bırakır. systemctl reload nginxDeğişiklikleri görmek için bir yapın ve ana sayfa olmayan bağlantılarınız yüklenmelidir.


0

Herhangi bir kalıcı bağlantı veya sunucu yapılandırma değişikliği yapmaya çalışmadan önce, lütfen .htaccess dosyanızı kontrol edin. Bu çoğunlukla bozuk veya boş bir .htaccess dosyası sorunudur. Htaccess dosyasını varsayılana sıfırlayın

# 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

0

2 uzun gün sonra, çözüm dosyamın options +FollowSymLinksen üstüne eklemekti .htaccess.


-1

Bu sorunu çok uzun zaman önce yaşadım. Kalıcı bağlantımı varsayılana sıfırladım veya yeni kaydettim, temaları / çekirdeği (4.7.4) / eklentilere güncelledim, tüm eklentileri devre dışı bıraktım, varsayılan temaya geçtim, optimize edilmiş veritabanı, .htaccess zaten varsayılan, dosya izinlerini kontrol etti, mod_rewrite açık .

Şimdiye kadar hiçbir şey işe yaramıyor, işe yarayan yazılar, yeni sayfa, / contact sayfası, eski sayfalar HARİÇ.

Temel olarak, çalışmayan sayfalar / URL'ler şunlardır:

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

Ultimate, bu dosyaları kök klasörde buldum:

/breeding.php ve /training.php

Her iki dosyayı yeniden adlandırdım ve yukarıdaki sayfalar çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.