Impossibile accedere alle sottodirectory non WordPress poiché WordPress le sovrascrive con un errore 404

16 giu 2011, 10:54:22
Visualizzazioni: 111K
Voti: 43

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

3
Commenti

Cosa succede se rinomini index.php in index.bak nella cartella principale di WordPress? La directory è ancora accessibile?

Horttcore Horttcore
16 giu 2011 11:44:21

Hai provato a ridefinire l'URL di base nel tuo file .htaccess della sottocartella (usando questa sottocartella come valore)?

Cédric G Cédric G
5 ago 2011 18:19:53

Wow, non riesco a servire un file html da una sottocartella! Sono qui da più di un'ora e ancora nessun risultato. Questa dovrebbe essere una delle cose più semplici da fare. Quale percentuale dei milioni di siti utilizza sottocartelle. AAAAAAAAAAAAAAAAAAAA

Paul McCarthy Paul McCarthy
31 ago 2022 16:31:20
Tutte le risposte alla domanda 8
0
33

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:

  1. 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.

  2. 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.

  3. 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.

17 giu 2011 17:33:00
3
22

Questo ha funzionato per me in passato in una situazione simile:

Inserisci questo all'inizio del file .htaccess

ErrorDocument 401 default
16 giu 2011 12:39:43
Commenti

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

Rado Rado
7 mar 2013 01:27:48

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

Asaf Asaf
10 ago 2013 11:27:48

Funziona anche per me.. non sto usando WordPress ma OpenCart e ho lo stesso problema. Una spiegazione sarebbe davvero utile.

You Old Fool You Old Fool
28 ago 2014 22:09:24
0

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...

  1. 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à.
  2. 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.
  3. 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.

17 giu 2011 17:44:49
0

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.

25 mag 2012 21:46:55
2

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
13 set 2012 14:14:06
Commenti

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

Pothi Kalimuthu Pothi Kalimuthu
21 set 2012 05:59:46

Fai solo attenzione a non modificare mai la struttura dei permalink, perché quando lo fai, WP sovrascriverà qualsiasi cosa tra #BEGIN WordPpress e #END WordPress

clayRay clayRay
13 ott 2020 06:53:26
0

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.

10 dic 2015 15:59:38
0

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!

2 ott 2013 10:54:14
0

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?

16 giu 2011 11:58:45