Sunucu geçişinden sonra sadece ana sayfa çalışır


33

Son zamanlarda WordPress sitemin barındırma hizmetini VPS.net olarak değiştirdim . Tüm dosyalarımı taşıdım ve veritabanını aldım. Bir bağlantıyı tıklayıp ana sayfam dışında tüm sayfalarımın bir 404 geri getirdiğini fark edene kadar her şey yolunda görünüyordu.

Site URL’si http://inksquared.com


Yanıtlar:


42

Sanırım http: // sitenize erişiyorsunuz ancak http: // siteniz / bir şey var.

Benzer bir sorun yaşadım ve değiştiğimde çözüldü

httpd.confitibaren

AllowOverride None

için

AllowOverride All

Anlayışım gereği, .htaccessetkisi üstlenecek.


6
Bu benim için çalıştı. İnsanların çoğu bunu unutuyor.
qasimzee

1
Bu benim için de işe yaradı, sadece apache2.confsunucu dosyalarımın yer aldığı kısımda değiştirmek zorunda kaldım , /var/wwwbenim durumumda
sponrad 17:15

1
Bu benim için cevabın bir parçasıydı. Ben ekledi AllowOverride Allsitesi yapılandırmasına, ama ben de eklendi Options FollowSymLinks. Daha sonra uygun bir root .htaccess dosyası da oluşturan özel permalinkleri kullanabildim. Bundan sonra her şey çalıştı.
boot13

1
Ve apache'yi yeniden başlatmayı unutma! "sudo service apache2 restart"
gradosevic

1
İşe yaradı. ConfOverride seçeneğini conf dosyasındaki konumlarda değiştirdiğinizden emin olun.
Najeeb

44

Mod_rewrite kurallarınızı temizlemeyi deneyin:

Gösterge Tablosu -> Ayarlar -> Kalıcı Bağlantılar

Ayarları kaydet (değişiklik yapmanıza gerek yok)


7
Aslında tasarruf etmeye gerek yok. Kurallar sadece bu sayfayı ziyaret ederek temizlenir ve kuralları temizlemenin bir kısmı .htaccess yazmayı içerir.
John P Bloch

Her gün yeni bir şey öğreniyorum ... :)
Chip Bennett

@john sadece sayfa yüklerinin gerektiğinde .htaccess'e yazdığından emin misiniz? Veritabanındaki sadece rewrite_rules öğütüldüğü izlenimi altındaydım.
Ashfame

wp-admin / seçenekler-permalinks.php çağrılar flush_rewrite_rules()için bir sarıcı WP_Rewrite::flush_rules()eğer ki, $hardbir true(o sayfada çağrıldığında olan) ve fonksiyon save_mod_rewrite_rules(tanımlanmış bulunmaktadır wp-admin/includes/misc.php, bütün yönetici sayfalarına dahil), bu çağırır save_mod_rewrite_rules(). Burada o işlevin tanımını bakınız: core.trac.wordpress.org/browser/trunk/wp-admin/includes/...
John P Bloch

Aslında yeniden yazma kurallarını .htaccess'e yazan fonksiyon burada tanımlanır (burada insert_with_markerskullanılır save_mod_rewrite_rules()), burada tanımlanır: core.trac.wordpress.org/browser/trunk/wp-admin/includes/…
John P Bloch

27

Ben de aynı problemle karşılaştım.

Bir Ubuntu Sunucusunda çözmek için aşağıdakileri yaptım:

  1. In /etc/apache2/apache2.conf , düzenleme AllowOverride Yok için / var / www / için AllowOverride All

  2. .Htaccess için mod_rewrite özelliğini etkinleştirmek için aşağıdaki komutu yazın

sudo a2enmod yeniden yazmak

  1. Apache sunucunuzu yeniden başlatın:

sudo servis apache2 yeniden başlat

Sorun çözüldü !!!


Teşekkürler, bunu diğer önerilerden herhangi biriyle çözemedim, ama a2enmod rewritenumarayı yaptım.
Martin McCallion

+1 Yeniden yazma modundan bahsetmek için. Bunun varsayılan olarak etkin olmadığını farketmediniz.
Yerel Kodlayıcı

Kesinlikle sudo a2enmod rewritebu wokring almak için gerekli , teşekkürler!
Huskie69

1
Teşekkürler! Komut a2enmod rewritebenim için hile yaptı.
Lucas Basquerotto

Teşekkürler Avinash! Lucas ile aynı, a2enmod yeniden yazma benim için hile yaptı
Jero Dungog

1

Bunun nedeni, büyük olasılıkla .htaccessdosyanın üzerine kopyalanmamasıdır. Mac OS X'te ve bazı FTP uygulamalarında, bu dosya "gizli" olarak kabul edilir, çünkü a ile başlar .. Yönetici bölümünüzdeki Ayarlar -> Permalinks bölümüne giderseniz, bu dosyayı yeniden oluşturabilirsiniz, ancak daha önce sahip olduğunuz sürümü bulmak ve tekrar kullanmak (özellikle bir önbellek eklentisi kullanıyorsanız) kullanmak en iyisidir.


1

Ubuntu 14.04 - 000-default.conf dosyası burada bulunabilir/etc/apache2/sites-available

Veya birden çok wp çalıştırırsanız, sanal ana bilgisayar ayarı config dosya adınız olur. örneğin domain.conf

Sen değiştirmek zorunda AllowOverride NoneiçinAllowOverride All

Umarım bu işe yarar.


0

Bir web sunucusu 404 veya bir WordPress 404 alıyor musunuz? Bir web sunucusu 404 ise, büyük olasılıkla kök htaccess dosyasını eski kurulumdan kopyalamamışsınızdır veya çalıştırılması için doğru izniniz yoktur.

İlk sorun giderme öğem, kökte bir htaccess dosyasının olup olmadığını kontrol etmek ve görmek olacaktır. Ve eğer öyleyse, ne içeriyorsa.


.Htaccess dosyasını kontrol ettim. Wordpress admin panelinin kalıcı bağlantı bölümünde görünen aynı kodu içerir. İzinleri yazılabilir olarak değiştirdim ve hiçbir belirgin değişiklik göremiyorum.
mikeyrocks

3
@mikeyrocks Hmm ... başka bir olasılık da yeni sunucunuzun mod_rewrite açık olmamasıdır. Önemli: Bir sunucu 404 ("bulunamadı" yazan düz beyaz sayfa) veya bir WordPress 404 (sitenizin geri kalanı gibi tasarlanmış) mı alıyorsunuz?
MathSmath
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.