2014-06-17 12 views
5

Okay, quindi ho appena creato la prima pagina di questo sito. Funziona quando utilizzo le impostazioni di permalink predefinite.HTTP 404 con nome postale permalink

Se cambio le impostazioni permalink di utilizzare il nome Post, tanto sono un HTTP 404.

Non sono sicuro di quello che è andato storto o se ho rotto niente. Qualcuno può aiutarmi a risolvere?

Il sito è ospitato su apache.

Page exists, link is broken

risposta

9

Stai usando XAMPP o MAMP? Ci sono un paio di singhiozzo comuni con quegli ambienti, tratto dal WordPress Codex: Fixing Permalink Problems

Gli utenti di XAMPP (Windows): alcune versioni di XAMPP non consentono mod_rewrite di default (anche se è stato compilato Apache). Per abilitarlo - e quindi abilitare WordPress a scrivere il file .htaccess necessario a creare bei permalink - è necessario aprire apache/conf/httpd.conf e decommentare la riga LoadModule rewrite_module modules/mod_rewrite.so (ad es. Cancellare il cancelletto/cancelletto nella parte anteriore della linea).

Gli utenti di WAMP (Windows): Alcune versioni di WAMP (? Tutte le versioni) non consentono mod_rewrite o permesso seguente link simbolici per impostazione predefinita. Per abilitare la funzionalità richiesta, passare al file apache/conf/httpd.conf , aprire con un editor di testo e rimuovere il commento dalla riga LoadModule rewrite_module modules/mod_rewrite.so (ad esempio, eliminare il segno hash/pound nella parte anteriore di la linea). Quindi più in basso nello stesso file c'è una sezione che inizia con la riga "Opzioni FollowSymlinks". Cambia la seconda riga in quella sezione da "AllowOverride none" a AllowOverride all. Salva editato httpd.conf e riavvia tutti i moduli WAMP . I tuoi permalink ora dovrebbero funzionare.

Si potrebbe anche vedere se il vostro Permalinks without mod_rewrite sandbox non ha mod_rewrite disponibili.

Apache

Se si utilizza Apache solito ci sono altri due colpevoli per rotti permalink: .htaccess non viene generata (a causa delle impostazioni delle autorizzazioni) o della direttiva di Apache AllowOverride non è abilitato.

Per prima cosa, se si SSH nel server, viene visualizzato un file .htaccess generato nella radice? In caso contrario, WordPress potrebbe non disporre delle autorizzazioni per scrivere quel file. È anche possibile che il file esista, ma che WordPress non possa modificarlo. In entrambi i casi, è possibile che chmod file (e crearlo se non esiste) a 666.

Avanti, garantire la vostra configurazione di Apache ha le seguenti impostazioni:

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
</Directory> 

Infine, leggere il Fixing Permalink Problems sezione del codice WordPress.Ci sono molti altri suggerimenti e suggerimenti sul perché i permalink potrebbero non funzionare.

+0

Questo è ospitato su apache – Ortund

+0

@Ortund Mi dispiace, mi sono perso. Ho aggiornato la mia risposta, spero che questo aiuti. –

+0

Non te lo sei perso, ho pensato che fosse ovvio, quindi non ho incluso quelle informazioni. Aggiungiamolo adesso anche se – Ortund

1

trovato questo post su un altro sito ha aiutato molte persone già

sono finalmente riuscito a risolvere il problema! La soluzione: stavo usando una struttura di permalink personalizzata http://kyl.fi/%category%/%postname%/. Ho rimosso la barra finale (cioè l'ultimo /) e voilà. Tuttavia, sono abbastanza sicuro di aver usato una struttura permalink con la barra finale prima senza problemi, quindi sono ancora confuso e sarei interessato a saperne di più su questo problema se qualcuno ha una spiegazione.

Tutti i permalink standard hanno un trailing/in là.

0

Nel mio caso, sto utilizzando il browser Web NGINX con la mia installazione di WordPress. La correzione è quello di aggiungere il seguente frammento di codice alle direttive nginx:

location/{ try_files $uri $uri/ /index.php?$args; } # Add trailing slash to */wp-admin requests. rewrite /wp-admin$ $scheme://$host$uri/ permanent; location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ { expires max; log_not_found off; }

Se si utilizza l'ottimo (open source) ISPconfig.org CPanel sostituto, quindi andare alla pagina Siti, sotto la scheda Opzioni , inserisci lo snippet di codice sopra per le direttive NGINX. ISPconfig ha una funzione per aggiungere snippet di codice comuni per l'accesso rapido nella scheda Opzioni.

Dopo aver eseguito la correzione di cui sopra, sono stato in grado di utilizzare qualsiasi opzione Permalink di WordPress.

0

Nel mio caso, in primo luogo ho dovuto aggiornare il file .htaccess dentro la mia cartella principale sito web:

# 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 

WordPress lo fa automaticamente se ha il permesso di scrittura. In caso contrario, si lamenterà che non può scrivere su di esso e fornire l'esempio di codice sopra riportato in modo da poter aggiornare manualmente lo .htaccess.

Successivamente ho modificato il file apache2.conf. In Linux, risiede in /etc/apache2/apache2.conf, ci sarà una sezione come questa:

<Directory /var/www/> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Require all granted 
</Directory> 

Change AllowOverride None-AllowOverride FileInfo.

Infine, eseguire i seguenti comandi:

sudo a2enmod rewrite 
service apache2 restart 

Tutti questi passi sono necessari per lavorare.