Back to Question Center
0

Come creare .htaccess per bloccare l'accesso a una sottodirectory che ospita un dominio separato - Semalt

1 answers:

Ho un dominio principale ( me. com ) e sto ospitando i file per il sito web di mia madre ( mamma. com ) in una sottodirectory nella mia cartella public_html in modo che mamma. com utilizza file da me. com / mamma - kunstleder meterware online kaufen und.

Tutto quello che voglio fare è fare in modo che chiunque cerchi di accedere al suo sito tramite me. com / mom riceve un errore, senza disturbare i visitatori della mamma. com .

February 6, 2018

Modifica: risolto un errore!

Questa è la teoria:

  RewriteEngine on
Mamma RewriteCond% {HTTP_HOST}. com $ [NC]
RewriteRule ^ mom / - [R = 404, L] 

Su alcune versioni, se quanto sopra non funziona, puoi fare questo brutto trucco

  RewriteEngine on
Mamma RewriteCond% {HTTP_HOST}. com $ [NC]
RewriteRule ^ mom / / someurlthatdoesntexist [L] 

Se stai bene con un 403 proibito invece di un 404 non un fondo, puoi usare l'opzione F.

  RewriteEngine on
Mamma RewriteCond% {HTTP_HOST}. com $ [NC]
RewriteRule ^ mom / - [F, L] 

Tuttavia, c'è ancora una cosa da considerare. i file htaccess vengono scansionati dal livello superiore e verso il basso, quindi se mamma. com ne ha. file htaccess, avranno la precedenza. Quello che puoi fare allora è aggiungere il seguente al. file htaccess nella mamma. com . Questo dovrebbe essere nella parte superiore dei file (subito dopo RewriteEngine On ).

  RewriteEngine on
RewriteCond% {HTTP_HOST}! Mamma. com $ [NC]
RewriteRule. - [R = 404, L] 

Notare l'aggiunta ! , che significa corrispondere se il dominio è non mamma. com. Si noti anche il . che significa "prendere tutto".

Sostituisci - [R = 404, L] con uno qualsiasi degli altri schemi, se necessario.

Entrambe le soluzioni di Stan e nitro2k01 non hanno funzionato per me.

Quanto segue ha funzionato per me:

  # Posiziona questo. file htaccess nella sottodirectory / mom
RewriteEngine On
RewriteCond% {HTTP_HOST} ^ www \. mamma\. nl $ [NC]
RewriteRule ^ (. *) $ - [L, R = 404] 

Nel pubblico. cartella www, ho usato quanto segue per farlo funzionare:

  RewriteEngine On
RewriteCond% {HTTP_HOST} ^ www \. mamma\. nl $ [NC]
RewriteRule. ? mamma /% {REQUEST_URI} [L, QSA] 

Spero che questo possa aiutare gli altri.

Grazie per l'input, ho basato sul tuo aiuto l'ho fatto funzionare, ma in un modo leggermente diverso: ho trovato questo articolo su BlueHost (il mio ospite) che aveva il codice corretto per farlo funzionare:

  • https: // mio. bluehost. it / hosting / help / 498

Il codice che ho usato era:

  Opzioni + SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond% {HTTP_HOST} ^ (www. )?me. com $ [NC]
RewriteCond% {REQUEST_URI} ^ / mom / (. *) $
RewriteRule ^ (. *) $ - [L, R = 404] 

Penso che il REQUEST_URI fosse ciò che mancava.

Funziona nella sottodirectory public_html o / mamma / . file htaccess.

Puoi usare questa regola nella tua. htaccess:

  RewriteEngine on
RewriteCond% {HTTP_HOST} ^ (www \. )?me\. com [NC]
RewriteRule ^ mom /. * $ / some-error-page. HTML [L, R]