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


35

Mi riferisco a questa domanda precedentemente posta e a cui non è stata data una risposta adeguata: Wordpress sovrascrive le sottodirectory effettive e anche le pagine / il codice non "Wordpress" che ottengono l'errore 404

Ho lo stesso problema e ho provato quasi tutto quello che ho trovato in rete. È sicuramente correlato all'attivazione dei permalink nel wordpress. Tuttavia, ho inserito un nuovo file .htaccess nella sottodirectory con:

RewriteEngine off

e il problema esiste ancora. Anche se cancello completamente il file .htaccess di wordpress, il problema persiste.

Ho anche provato alcune 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 tutte inutilmente .

Qualcuno può offrire un'altra soluzione, per favore? L'unico modo per risolverlo è disattivare i permalink, ma abbiamo bisogno che siano attivi.

Grazie,

Nicole


Cosa succede se si rinomina index.php in index.bak nella cartella principale di WordPress? La directory non è ancora accessibile?
Horttcore,

Hai provato a ridefinire l'URL di base nella tua sottocartella .htaccess (con questa sottocartella per valore)?
Cédric G,

Risposte:


29

Suppongo che tu abbia inserito WordPress nella radice del tuo sito e che anche le directory esterne siano nella radice del tuo sito. Il motivo per cui ciò accade è che i file .htaccess seguono una gerarchia. Qualunque direttiva si trovi nel file .htaccess di livello superiore, scorre verso il basso e si applica a tutte le directory sottostanti.

In questo caso, puoi fare una delle varie cose:

  1. Sposta il tuo WordPress nella sua directory. Vedi: http://codex.wordpress.org/Moving_WordPress Se sposti WordPress nella sua directory in modo che sia allo stesso livello nella gerarchia della directory del server delle altre directory, le regole di riscrittura di WordPress non possono influenzare le altre directory.

  2. RewriteEngine Off: normalmente funzionerebbe. Se non funziona, verificare di non utilizzare un'impostazione DNS con caratteri jolly. Se hai un record jolly * nome host che punta al tuo server web nelle impostazioni DNS, può causare danni con .htaccess e sottodomini.

  3. Nel file .htaccess nella radice 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>
    

Uno di questi dovrebbe funzionare per te.


18

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

Metti questo sopra .htaccess

ErrorDocument 401 default

2
Grazie! Ho provato tante cose, ma questa è l'unica soluzione che ha funzionato per il mio caso: sottodirectory protetta da password
Rado

2
Ha funzionato anche per me, qualche spiegazione su cosa fa e perché funziona?
Asaf

Questo funziona per me .. non usando wordpress ma OpenCart e avendo lo stesso problema. Una spiegazione sarebbe davvero utile.
Billynoah,

4

quando copio i miei file nello stesso server ma con una cartella della sottodirectory diversa, quindi quando ho provato ad accedere alle mie pagine, index.php funziona bene ma le altre pagine non lo sono e mi danno un errore 404. Scusa per il mio cattivo inglese!!

Guardo nel mio htaccess l'originale:

# INIZIA WordPress

RewriteEngine On
RewriteBase /
RewriteCond% {REQUEST_FILENAME}! -F
RewriteCond% {REQUEST_FILENAME}! -D
RewriteRule. /index.php [L]

# END WordPress

e metti quello nuovo con

# INIZIA WordPress

RewriteEngine On
RewriteBase / subdirectoryfolder
RewriteCond% {REQUEST_FILENAME}! -F
RewriteCond% {REQUEST_FILENAME}! -D
RewriteRule. /subdirectoryfolder/index.php [L]

# END WordPress

Ciao @lizette. Benvenuti nei forum WPSE. Potresti voler controllare come funziona la formattazione qui.
Pothi Kalimuthu,

4

Vedo che questa discussione ha qualche mese, ma nel caso in cui non riuscissi mai a farlo funzionare!

Ho avuto un problema simile, ma il mio problema era che l'installazione di wordpress si trovava nella sottodirectory che impediva l'accesso all'URL alle cartelle all'interno della radice (al di fuori della directory di installazione di WP), ma solo quando i permalink erano abilitati. Per risolvere questo, ho copiato sia index.php che .htaccess (copia non sposta) dalla sottodirectory in cui si trova l'installazione di WP e li ho posizionati entrambi nella root public_html (o in qualunque sottodirectory a cui stai tentando di accedere al di fuori dell'installazione di WP directory). Il file .htaccess ha 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]

Abilita permalink per l'aggiornamento e risolto tutti i problemi. Assicurati che anche le tue autorizzazioni per le cartelle root siano impostate correttamente, poiché in passato ciò mi ha causato problemi.


3

Se stai ancora ottenendo 404 con htaccess disabilitato e hai verificato i percorsi e sai che i file sono lì, le uniche opzioni rimaste sono queste tre ...

Opzioni...

  1. Il server sta probabilmente eseguendo un sistema operativo sensibile al maiuscolo / minuscolo. Ciò significa che se si digita un percorso e non si usano i caratteri esatti e il case semplicemente non funzionerà.
  2. Autorizzazioni: potresti avere autorizzazioni errate sul file o sulla cartella o su una cartella principale. Prova a modificare le autorizzazioni su 755 su file, cartelle e cartelle principali. Se hai accesso a ssh (terminale), vai sul tuo root ed esegui questo "chmod -R 755 mydir" e questo imposterà in modo ricorsivo le autorizzazioni per tutti loro.
  3. Se dopo tutto ciò hai ancora problemi, hai un problema di configurazione del server (probabilmente Apache). Dovrai parlarne con il tuo fornitore di hosting.

Se nessuna di queste funzioni, è necessario un nuovo host.


2

Dopo aver quasi strappato i capelli modificando l'htaccess ho finalmente trovato una soluzione che funzionerà per WordPress.

Ho avuto questo problema dopo aver installato uno script codeiginter nella stessa directory principale in cui è installato WordPress.

Dopo aver provato tutti i trucchi elencati qui, continuavo a ricevere 404 errori nelle pagine associate al nuovo script.

Ho notato che l'htaccess di WordPress stava sostituendo l'htaccess dello script. Ho anche notato che altre installazioni di WordPress nella stessa directory non avevano questo errore 404.

Ho semplicemente adottato htaccess dalla nuova installazione di WordPress nella stessa directory del server e l'ho aggiunto nella cartella in cui si trova il mio script. Ecco come appare:

<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 nella cartella in cui si trova lo script.

Esempio: se il sito è installato qui

public_html/

e si trova la nuova cartella

`public_html/example`

copia l'htaccess sopra e salvalo nella cartella 'esempio' e questo dovrebbe funzionare.


1

Ho esaminato le risposte qui diverse volte mentre mi imbattevo in un problema simile. Ho dei file in una sottodirectory che generano un errore 404 quando provo ad accedervi. Tutte le cose .htaccess non sono riuscite a correggerlo, come dice Kirsten Douglas, Wordpress fa già il lavoro.

La mia soluzione

Ho trovato questo articolo dopo aver verificato il log_errore sul server. Stavo ricevendo un messaggio sull'Uid sbagliato per gli script. Ho anche notato che il 404 non veniva lanciato a causa del file, ma perché il server non poteva servire un file 500.html, cioè avevo un errore 500.

Ho scoperto che avevo creato i file come root e che avevo bisogno di cambiare la proprietà al proprietario dei file web.

Spero che questo aiuti gli altri che hanno avuto lo stesso problema!


0

Dovresti essere in grado di aggiungere solo a RewriteCond direttiva che assicurerà che le regole di WordPress vengano ignorate per le richieste all'interno della tua sottocartella.

RewriteCond %{REQUEST_URI} !^/mysubdirectory
# rest of WordPress rewrite rules

Tuttavia, dici che anche senza WordPress .htaccessstai riscontrando il problema? Qual è il contenuto della tua sottodirectory .htaccess?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.