După migrarea serverului, funcționează doar pagina principală

13 apr. 2011, 21:32:58
Vizualizări: 122K
Voturi: 42

Recent mi-am mutat găzduirea site-ului WordPress pe VPS.net. Am transferat toate fișierele și am importat baza de date. Totul părea în regulă până când am dat click pe un link și am observat că toate paginile mele returnează eroare 404, cu excepția paginii principale.

URL-ul site-ului este http://inksquared.com

2
Comentarii

Am avut această problemă astăzi! Site WordPress Migrat – Pagina de Acasă Funcționează, Toate Celelalte Pagini/Linkuri Eșuează

user187724 user187724
9 ian. 2016 21:22:26

Am avut aceeași problemă și apoi a fost rezolvată prin modificarea fișierului .htaccess conform valorilor implicite de aici https://wordpress.org/support/article/htaccess/

Muzaffar Mahmood Muzaffar Mahmood
23 iun. 2020 11:38:52
Toate răspunsurile la întrebare 6
8
54

Încearcă să resetezi regulile mod_rewrite:

Panou de control -> Setări -> Legături permanente

Salvează setările (nu este nevoie să faci nicio modificare)

13 apr. 2011 21:36:23
Comentarii

De fapt, nici nu este nevoie să salvezi. Regulile sunt resetate doar prin vizitarea acelei pagini, iar procesul de resetare include scrierea în .htaccess.

John P Bloch John P Bloch
13 apr. 2011 21:49:19

Învăț ceva nou în fiecare zi... :)

Chip Bennett Chip Bennett
13 apr. 2011 21:51:20

@john ești sigur că doar încărcarea paginii scrie în .htaccess dacă este necesar? Am avut impresia că doar rewrite_rules din baza de date sunt resetate.

Ashfame Ashfame
13 apr. 2011 22:00:08

wp-admin/options-permalinks.php apelează flush_rewrite_rules(), un wrapper pentru WP_Rewrite::flush_rules(), care, dacă $hard este true (așa cum este când este apelat pe acea pagină) și funcția save_mod_rewrite_rules există (definită în wp-admin/includes/misc.php, inclusă în toate paginile de administrare), apelează save_mod_rewrite_rules(). Vezi definiția acelei funcții aici: http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/misc.php#L114

John P Bloch John P Bloch
13 apr. 2011 23:32:09

Funcția care scrie efectiv regulile de rescriere în .htaccess se numește insert_with_markers (folosită în save_mod_rewrite_rules() de mai sus), definită aici: http://core.trac.wordpress.org/browser/trunk/wp-admin/includes/misc.php#L53

John P Bloch John P Bloch
13 apr. 2011 23:33:42

Aceasta a rezolvat problema pentru mine.

Ed DeGagne Ed DeGagne
17 apr. 2017 04:11:13

Nu este nevoie să deschizi cPanel. Am încercat mai întâi răspunsul acceptat și, deoarece am hosting partajat, nu am putut găsi fișierul httpd.conf, iar chat-ul live încă se încărca. Apoi am găsit acest răspuns, care este cea mai ușoară soluție de utilizat. :D

TheOnlyAnil TheOnlyAnil
4 aug. 2017 11:24:23

aceasta a rezolvat problema mea (la fel ca în cazul OP)

arvic.rivera arvic.rivera
6 dec. 2018 22:12:27
Arată celelalte 3 comentarii
6
54

Presupun că primești http://siteultau dar nu http://siteultau/orice

Am avut o problemă similară și a funcționat când am schimbat

în httpd.conf de la

AllowOverride None

la

AllowOverride All

Această modificare face ca fișierul .htaccess să fie luat în considerare.

18 apr. 2012 18:20:28
Comentarii

Aceasta soluție a funcționat pentru mine. Majoritatea oamenilor uită de acest lucru.

qasimzee qasimzee
10 dec. 2014 20:20:47

Și pentru mine a funcționat, a trebuit doar să modific în secțiunea apache2.conf locația fișierelor serverului meu, în cazul meu /var/www

sponrad sponrad
17 nov. 2015 08:04:10

Aceasta a fost o parte din soluție pentru mine. Am adăugat AllowOverride All în configurația site-ului, dar am adăugat și Options FollowSymLinks. Apoi am putut folosi permalink-uri personalizate, care au creat și un fișier .htaccess corespunzător în rădăcină. După aceea, totul a funcționat.

boot13 boot13
13 sept. 2016 02:46:46

Și nu uitați să reporniți Apache! "sudo service apache2 restart"

gradosevic gradosevic
11 ian. 2017 09:51:03

A funcționat. Asigurați-vă că modificați opțiunea AllowOverride în locațiile din fișierul conf.

Najeeb Najeeb
19 dec. 2017 15:54:06

activarea în httpd.conf LoadModule rewrite_module libexec/apache2/mod_rewrite.so a funcționat pe Mac. eliminați # pentru a o activa

stefanosn stefanosn
6 iul. 2019 18:54:01
Arată celelalte 1 comentarii
5
31

Am avut aceeași problemă.

Am făcut următoarele pentru a o rezolva pe un server Ubuntu:

  1. În /etc/apache2/apache2.conf, editează AllowOverride None pentru /var/www/ în AllowOverride All

  2. Introdu următoarea comandă pentru a activa mod_rewrite pentru .htaccess

sudo a2enmod rewrite

  1. Repornește serverul Apache:

sudo service apache2 restart

Problema a fost rezolvată!!!

22 nov. 2015 04:40:28
Comentarii

Mulțumesc, nu am reușit să rezolv problema cu alte sugestii, dar a2enmod rewrite a funcționat.

Martin McCallion Martin McCallion
23 iun. 2017 21:17:06

+1 Pentru menționarea modulului rewrite. Nu mi-am dat seama că acesta nu este activat implicit.

Native Coder Native Coder
13 dec. 2017 05:35:47

Cu siguranță a fost necesar sudo a2enmod rewrite pentru a face asta să funcționeze, mulțumesc!

Huskie69 Huskie69
5 oct. 2018 12:31:02

Mulțumesc! Comanda a2enmod rewrite a funcționat pentru mine.

Lucas Basquerotto Lucas Basquerotto
17 oct. 2018 18:46:45

Mulțumesc Avinash! La fel ca Lucas, comanda a2enmod rewrite a funcționat și pentru mine

Jero Dungog Jero Dungog
25 nov. 2019 23:52:17
0

În Ubuntu 14.04 - fișierul 000-default.conf poate fi găsit aici /etc/apache2/sites-available

Sau dacă rulezi mai multe instanțe WordPress, setările virtual host vor fi în fișierul de configurare corespunzător. de ex. domain.conf

Trebuie să înlocuiești AllowOverride None cu AllowOverride All

Sper că această soluție va funcționa.

9 nov. 2015 17:51:54
0

Motivul este cel mai probabil că fișierul .htaccess nu a fost copiat. Pe Mac OS X și în unele aplicații FTP, acest fișier este considerat "ascuns" deoarece începe cu un .. Dacă accesați secțiunea Setări -> Legături permanente în panoul de administrare, puteți regenera acest fișier, dar cel mai bine este să găsiți versiunea pe care o aveați anterior și să o utilizați din nou (mai ales dacă folosiți un plugin de caching).

13 apr. 2011 21:46:27
2

Primești o eroare 404 de la serverul web sau de la WordPress? Dacă este o eroare 404 de la serverul web, cel mai probabil nu ai copiat fișierul htaccess din directorul rădăcină al instalației vechi, sau acesta nu are permisiunile corecte pentru a funcționa.

Primul meu pas în depanare ar fi să verific dacă există un fișier htaccess în directorul rădăcină. Și dacă există, să văd ce conține.

13 apr. 2011 21:36:15
Comentarii

Am verificat fișierul .htaccess. Conține același cod care apărea în secțiunea de legături permanente din panoul de administrare WordPress. Am schimbat permisiunile în modul de scriere și nu observ nicio modificare aparentă.

mikeyrocks mikeyrocks
13 apr. 2011 22:17:22

@mikeyrocks Hmm... o altă posibilitate este ca noul tău server să nu aibă activat mod_rewrite. Important: primești o eroare 404 de server (pagina albă simplă care spune "not found"), sau o eroare 404 WordPress (stilizată ca restul site-ului tău)?

MathSmath MathSmath
13 apr. 2011 23:11:24