Impossibile accedere alle sottodirectory non WordPress poiché WordPress le sovrascrive con un errore 404
Mi riferisco a questa domanda posta in precedenza e non adeguatamente risposta: WordPress sovrascrive le sottodirectory esistenti e anche Pagine/codice non "WordPress" restituiscono errore 404
Ho lo stesso problema e ho provato quasi tutto quello che ho trovato in rete. È sicuramente legato all'attivazione dei permalink in WordPress. Tuttavia, ho inserito un nuovo file .htaccess nella sottodirectory con:
RewriteEngine off
e il problema persiste. Anche se elimino completamente il file .htaccess di WordPress, il problema continua ad esistere.
Ho provato anche altre soluzioni suggerite come ErrorDocument 401 "Accesso non autorizzato" e ErrorDocument 404 "Accesso non autorizzato" e Redirect 301 /mysubdirectory http://www.mydomain.com/mysubdirectory/index.html in varie posizioni, ma tutto senza successo.
Qualcuno può suggerire un'altra soluzione? L'unico modo in cui posso risolvere è disattivare i permalink ma abbiamo bisogno che siano attivi.
Grazie,
Nicole

Suppongo che tu abbia installato WordPress nella root del tuo sito e che le directory esterne si trovino anch'esse nella root del sito. Il motivo per cui ciò accade è che i file .htaccess seguono una gerarchia. Qualsiasi direttiva presente nel file .htaccess di livello superiore si propaga verso il basso e si applica a tutte le directory sottostanti.
Se questo è il caso, puoi fare una delle seguenti cose:
Sposta WordPress nella sua directory separata. Vedi: http://codex.wordpress.org/Moving_WordPress Se sposti WordPress in una directory propria, in modo che si trovi allo stesso livello nella gerarchia delle directory del server delle altre directory, le regole di riscrittura di WordPress non potranno influenzare le altre directory.
RewriteEngine Off - normalmente questo funzionerebbe. Se non funziona, verifica di non utilizzare un'impostazione DNS wildcard. Se hai un record hostname wildcard * che punta al tuo server web nelle impostazioni DNS, può causare problemi con .htaccess e sottodomini.
Nel file .htaccess nella root del tuo sito, aggiungi quanto segue SOPRA le direttive .htaccess di WordPress:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR] RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR] RewriteRule ^.*$ - [L] </IfModule>
Una di queste soluzioni dovrebbe funzionare per te.

Grazie! Ho provato tante soluzioni, ma questa è l'unica che ha funzionato nel mio caso: sottocartella protetta da password

Ha funzionato anche per me, qualcuno può spiegare cosa fa e perché funziona?

Se continui a ricevere errori 404 anche con l'htaccess disabilitato e hai verificato che i percorsi siano corretti e i file esistano, allora le tue uniche opzioni rimanenti sono queste tre...
Opzioni...
- Il server potrebbe utilizzare un sistema operativo case-sensitive. Ciò significa che se stai digitando un percorso senza utilizzare esattamente gli stessi caratteri e maiuscole/minuscole, semplicemente non funzionerà.
- Permessi: Potresti avere i permessi errati sul file, sulla cartella o su una cartella genitore. Prova a modificare i permessi a 755 su file, cartelle e cartelle genitore. Se hai accesso SSH (terminale), vai alla root ed esegui questo comando "chmod -R 755 mia_cartella" per impostare ricorsivamente i permessi per tutti.
- Se hai ancora problemi dopo tutto ciò, allora hai un problema di configurazione del server (probabilmente Apache). Dovrai contattare il tuo provider di hosting per risolverlo.
Se nessuna di queste soluzioni funziona, allora hai bisogno di un nuovo host.

Vedo che questa discussione è di qualche mese fa, ma nel caso tu non abbia ancora risolto!
Ho avuto un problema simile, ma nel mio caso l'installazione di WordPress si trovava in una sottocartella e questo impediva l'accesso via URL alle cartelle nella root (al di fuori della directory di installazione di WP), ma solo quando i permalink erano attivati. Per risolvere, ho copiato sia index.php che .htaccess (copiare, non spostare) dalla sottocartella dove è installato WordPress e li ho posizionati entrambi nella root public_html (o qualunque altra sottocartella che stai cercando di accedere al di fuori della directory di installazione di WP). Il file .htaccess contiene già le condizioni di riscrittura per i permalink:
RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
Attiva i permalink per aggiornare e questo ha risolto tutti i problemi. Assicurati anche che i permessi per le cartelle root siano impostati correttamente, perché in passato questo mi ha causato problemi.

quando copio i miei file nello stesso server ma in una sottocartella diversa, quando provo ad accedere alle mie pagine, index.php funziona bene ma le altre pagine no e mi danno un errore 404. Scusa per il mio inglese non perfetto!!
Ho appena controllato il mio file htaccess originale:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
e ho inserito quello nuovo con
# BEGIN WordPress RewriteEngine On RewriteBase /subdirectoryfolder RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /subdirectoryfolder/index.php [L] # END WordPress

Ciao @lizette. Benvenuta nei forum di WPSE. Potresti voler dare un'occhiata a come funziona la formattazione qui.

Dopo avermi quasi strappato i capelli modificando l'htaccess ho finalmente trovato una soluzione che funziona per WordPress.
Ho avuto questo problema dopo aver installato uno script CodeIgniter nella stessa directory root in cui è installato WordPress.
Dopo aver provato tutti i trucchi elencati qui continuavo a ricevere errori 404 sulle pagine associate al nuovo script.
Ho notato che l'htaccess di WordPress stava sovrascrivendo quello dello script. Ho anche notato che altre installazioni di WordPress nella stessa directory non avevano questo errore 404.
Ho semplicemente adottato l'htaccess dalla nuova installazione di WordPress nella stessa directory del server e l'ho aggiunto nella cartella dove si trova il mio script. Ecco come si presenta:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subdirectoryname/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectoryname/index.php [L]
</IfModule>
Sostituisci subdirectoryname con il nome della tua directory e posiziona questo file htaccess all'interno della cartella dove si trova il tuo script.
Esempio: Se il sito è installato qui
public_html/
e la nuova cartella si trova in
`public_html/esempio`
copia l'htaccess sopra e salvalo all'interno della cartella 'esempio' e dovrebbe funzionare.

Ho consultato le risposte qui diverse volte perché mi sono imbattuto in un problema simile. Avevo file in una sottodirectory che generavano un errore 404 quando cercavo di accedervi. Tutte le modifiche al file .htaccess non hanno risolto il problema e, come dice Kirsten Douglas, Wordpress fa già il suo lavoro.
La mia soluzione
Dopo aver controllato l'error_log sul server, ho trovato questo articolo. Stavo ricevendo un messaggio riguardante un uid errato per gli script. Ho anche notato che l'errore 404 non era causato dal file stesso, ma dal fatto che il server non riusciva a servire un file 500.html, ovvero avevo un errore 500.
Si è scoperto che avevo creato i file come root e dovevo cambiarne la proprietà all'utente proprietario dei file web.
Spero che questo possa aiutare altri che hanno riscontrato lo stesso problema!

Dovresti essere in grado di aggiungere una direttiva RewriteCond
che assicuri che le regole di WordPress vengano ignorate per le richieste all'interno della tua sottocartella.
RewriteCond %{REQUEST_URI} !^/mysubdirectory
# resto delle regole di riscrittura di WordPress
Tuttavia, dici che anche senza il file .htaccess
di WordPress stai riscontrando il problema? Qual è il contenuto del tuo file .htaccess
nella sottocartella?
