Rimuovere index.php dall'URL
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)

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]

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]
