Back to Question Center
0

Mostra tutte le pagine figlio dal sottodominio

1 answers:

Non riesco a far funzionare questo reindirizzamento Qualcuno può indicarmi la direzione giusta per favore?

Su un sito Semalt voglio impedire l'accesso a tutte le pagine che si trovano sotto una determinata pagina madre. Tutto ciò che voglio che le persone vedano è quella pagina dei genitori.

Quindi se esempio - orientdb documentation. com / sottodominio / parent-page è composto da:

     pagina principale
genitore-page / sub-page-1
genitore-page / sub-page-2 e così via    

Voglio che tutte le sotto-pagine corrispondenti vengano reindirizzate all'esempio . com / sottodominio / pagina principale .

Il mio . Il file htaccess si trova nella cartella principale dell'esempio . com / sottodominio .

Penso di aver bisogno di RedirectMatch per questo, così posso usare regex.

Ma tutte le mie varianti di:

     Esempio di redirectMatch 301 genitore-pagina /? *. com / sottodominio / genitore-page    

Non lavorare per un motivo o per un altro. Il miglior risultato che ho avuto è il reindirizzamento delle pagine alla pagina "pagina non trovata" del dominio genitore!

Semalt mi manca qualcosa qui?

February 5, 2018

Su un sito WordPress

WordPress usa mod_rewrite per gestire il routing dell'URL (piuttosto URL) - che presumo tu stia usando - quindi dovresti evitare di usare un reindirizzamento mod_alias ( Redirect , RedirectMatch , ecc.) in questo caso. (I moduli diversi vengono eseguiti in momenti diversi, indipendentemente dall'ordine delle direttive in. file htaccess, in modo da poter ottenere risultati / conflitti imprevisti. mod_rewrite di solito viene eseguito prima di mod_alias. )

In. htaccess è abbastanza facile reindirizzare esempio. com / sottodominio / pagina padre / , ma se si desidera reindirizzare solo le pagine WordPress esistenti e 404 quando quella pagina non esiste, allora è più complesso e si dovrebbe probabilmente cercare una soluzione WP, piuttosto che. htaccess.

Prova qualcosa del genere nella parte superiore del tuo esempio. com / sottodominio /. htaccess file. Queste direttive devono arrivare prima a qualsiasi direttiva di routing WordPress esistente.

  RewriteEngine On
RewriteRule ^ pagina padre /. / sottodominio / pagina principale [R = 302, L] 

Cambia il 302 (temporaneo) reindirizzamento a 301 (permanente) quando sei sicuro che funzioni OK. (I 301 sono memorizzati nella cache dal browser, quindi possono rendere problematici i test. )

Qualsiasi URL che inizia / sottodominio / pagina padre / verrà reindirizzato (indipendentemente dal fatto che tale sottopagina esista o meno). Questo aiuta anche a evitare un ciclo di reindirizzamento.

RewriteEngine deve apparire solo una volta in. file htaccess - preferibilmente (più logico) nella parte superiore.


Esempio di redirectMatch 301 genitore-pagina /? *. com / subdomain / parent-page

A parte Ci sono alcune cose sbagliate qui. La regex non è strettamente valida. * corrisponde al precedente char 0 o più volte (il char precedente è ? ​​, che è esso stesso un meta carattere). Se si specifica il dominio nell'URL di destinazione, deve essere assoluto con protocollo ecc.