WordPress – kłopot z permlinkiem

promotivls zapytał na blipie:

Zmieniłem ustawienia stałych linków i teraz mam w całym serwisie error 403. Jak przywrócić domyślne ustawienia

Na czym polega problem?

Ustawienie budowy odnośników na inną opcję niż domyślna powoduje, że serwis musi mieć prawidłowo skonfigurowane reguły “rewrite”, które są odpowiedzialne za przepisywanie adresu na taki, który będzie zrozumiały dla wordpressa.

Domyślnie wordpress ma plik .htaccess skonfigurowany dla serwera apache’a i wygląda on następująco:

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

i sumarycznie działa tak, że jeżeli nie istnieje plik lub katalog o który pytamy to całość zostaje skierowana do pliku /index.php – a to co tam się dzieje z danymi zależy już od wordpress’a.

Aby całość działała serwer apache’a musi mieć załadowany moduł mod_rewrite oraz być tak skonfigurowany, żeby pozwalał na definiowanie reguł przez serwis, czyli opcja AllowOverride ustawiona na All (domyślne ustawienie).

rozwiązanie

Rozwiązaniem jest skasowanie wartość permalink_structure z tabeli opcji (domyślnie) wp_options.
UPDATE wp_options SET option_value = NULL WHERE option_name = 'permalink_structure';
Oraz skasowanie wytworzonego pliku .htaccess