Rimuovere index.php dall'URL

25 mar 2017, 05:14:20
Visualizzazioni: 4.6K
Voti: 0

Ho installato WordPress nella sottodirectory /www/html/wordpress/ (e non in /www/html/) e la soluzione fornita qui Come eliminare index.php non ha funzionato su questo server.

La soluzione suggerisce di aggiungere quanto segue al file .htaccess:

# INIZIO WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# FINE WordPress

e di cambiare in 'AllowOverride ALL' nella configurazione di Apache.

La soluzione ha funzionato per il mio altro server dove WordPress è installato in /www/html/ ma non per questo. Sai perché succede e come potrei risolvere? (Apparentemente dovrei modificare il codice sopra nel file .htaccess ma non so come)

1
Commenti

Come sono attualmente i tuoi URL? Quali sono le impostazioni dei permalink?

bosco bosco
25 mar 2017 06:17:47
Tutte le risposte alla domanda 2
1
-2

Accedi alla tua Dashboard di Wordpress e clicca su Impostazioni > Permalink. Nella sezione Impostazioni comuni, seleziona Struttura personalizzata e nel campo di testo inserisci /%postname%/

Clicca su Salva modifiche

Il secondo passo è creare un file .htaccess che verrà poi caricato nella posizione root del sito Wordpress.

Il file .htaccess conterrà le seguenti regole:

RewriteEngine on
RewriteBase / 

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.*)$ /index.php/$1 [NC,L]

# per wordpress con una directory di blog
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^wordpress/(.*)$ wordpress/index.php/$1 [NC,L]
25 mar 2017 05:23:26
Commenti

Grazie ma il codice qui sopra non ha funzionato per me! Le pagine senza includere index.php non possono essere caricate.

geek2000 geek2000
26 mar 2017 00:01:26
0
-2

A seconda delle tue impostazioni, le voci predefinite del file .htaccess dovrebbero corrispondere esattamente al tuo codice (vedi sotto). Se dopo aver attivato una delle impostazioni diverse da "predefinite" in WordPress Dashboard > Impostazioni > Permalinks non riesci ancora a eliminare index.php, ciò indica che le voci predefinite di WordPress non stanno avendo effetto.

Sei sicuro che i tuoi file .htaccess vengano caricati all'avvio di Apache?
Come appare la direttiva <virtualhost> di Apache per la directory in cui è installato WordPress?

Voce predefinita di WordPress nel file .htaccess dopo l'attivazione dei permalinks

# 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

Se tutto il resto fallisce, puoi provare ad aggiungere questo codice nel tuo file .htaccess. Questa non è una vera soluzione, ma aggiungendo questo codice nel file .htaccess potrebbe generare un errore che ti indichi la fonte del problema. Controlla i tuoi file di log degli errori.

# Forza le richieste per i file index.php a rimuovere il nome del file index.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]*/)*index\.(php)(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]*/)*)index\.(php)$ /$1 [R=301,L] 
5 mar 2018 16:25:31