- Home
- Categorie
- Coding e Sistemistica
- Hosting e Cloud
- Redirect ad una sottocartella
-
Redirect ad una sottocartella
Ciao a tutti
Ho un sito costruito con un'installazione wordpress (a dire il vero varie...) nella root di un server apache.
In una sottocartella "landing" ho costruito una landing page automatizzata (sempre utilizzando wordpress...).
Ora vorrei sapere come posso settare apache o i redirect per avere utte le richieste di dominio.com indirizzate a dominio.com/landing mentre tutte le altre normalmente processate
Mi aiutate?
Grazie
Massimiliano
-
Semplice si fa così
RewriteEngine on RewriteCond %{HTTP_HOST} ^dominio\.com$ RewriteRule ^(.*)$ http://www.dominio.com/landing.html [R=301,L]
-
Quindi visto che il dominio è manitese.it e la landing è su manitese.it/landing, il codice da inserire nel .htacces della root è
RewriteEngine on RewriteCond %{HTTP_HOST} ^manitese.it$ RewriteRule ^(.*)$ http:*slashslash*www *punto *manitese.it/landing [R=301,L]
È corretto?
-
Si
-
Ci vuole un
ReWriteEngine Off
???
-
Se disattivi il rewrite engine è impossibile che riuscirai a fare quello che chiedi.
-
Purtroppo non sembra funzionare...
Su pastebin.com/ff510326 puoi vedere il file .htaccess
Grazie
Massimiliano
-
Quel file è abbastanza complesso, potrebbero esserci delle interferenze tra tutte quelle direttive.
Prova a togliere tutto il resto e a lasciare solo le prime
-
Mi correggo...
Con manitese punto it il redirect funziona
Con www punto manitese punto it il redirect non funziona
Forse
^manitese.it$
deve diventare
^www *punto* manitese.it$
????
-
Si infatti il codice che ti ho dato serve esclusivamente per fare il redirect del dominio senza www.
Se fai il redirect col dominio con www a quel punto che rimane? C'è un'installazione di wordpress che non sarà mai accessibile.
-
L'installazione sulla root sarebbe accessibile attraverso i link nella landing...
O dopo tutte le richieste standard di wordpress, ad esempio manitese.it/?p=123, verranno reindirizzate?
-
Infatti è quello il punto. Così com'è scritta la regola tutti gli url verranno reindirizzati.
Se lo scopo è reindirizzare i 404 allora ti conviene più banalmente modificare l'index.php di wordpress.
-
Forse non riesco a spiegarmi io allora...
Io vorrei che chi digita www punto manitese punto it venga indirizzato a www punto manitese punto it slash landing.
Poi c'è l'installazione di wordpress nella root con i suoi permalink che vorrei che rimanessero fissi.
Non ho modo di separare la regola?
(poi se troviamo una soluzione, Paolino, me è te ci fidanziamo, ti va?
)
-
Capisco qual'è il punto, in pratica lo scopo è il redirect dalla root verso landing.
Innanzitutto bisogna verificare che quella regola funzioni. Nel caso non funzionasse vuol dire che non è permesso l'override nella configurazione di apache e in quel caso bisogna modificare quell'impostazione.
(poi se troviamo una soluzione, Paolino, me è te ci fidanziamo, ti va?
)
Sorry mi piacciono solo le donne
-
Dimenticavo di postare la regola esatta
RewriteEngine On RewriteCond %{HTTP_HOST} ^(www\.)?manitese\.it$ RewriteRule ^$ http://www.manitese.it/landing.html [R=301,L]
Come si vede cambiano alcune cose.
La prima è il (www.)? che matcha sia il dominio con www che senza.
La seconda è il ^$ nella rewrite rule che match solo ed esclusivamente la root del dominio ( quindi www . manitese . it/pippo.html non verrà reindirizzata su landing ).
Infine mi spieghi perchè landing e non landing.html o landing.php?
-
@paolino said:
Infine mi spieghi perchè landing e non landing.html o landing.php?
Perché in /landing c'è un altro wordpress che pesca automaticamente dalle varie altre 35 installazioni i "best of" e li pubblica...
Si lo so che non serviva buttare su un wordpress intero per fare sta roba qua ma così facevo prima che importavo una roba da un altro progetto e poi così consentiva al cliente di smanazzare un po'...
-
Allora...
La regola funziona... vengo indirizzato sulla sottodirectory, ma poi "rimango sempre lì"... Tutte i link che puntano alla installazione nella root vengono indirizzati nella sottocartella...Secondo te è impossibile quello che sto cercando di fare?
E se usassimo un file di indice differente per la root?
Ad esempio: se io metto nel .htaccess della root
DirectoryIndex index.html
e creo un index.html
<HTML> <HEAD> <TITLE>Redirect...</TITLE> <META HTTP-EQUIV="REFRESH" CONTENT="0; URL=http:*slashslash *www*punto *manitese.it/landing"> </HEAD> <BODY> Redirect in corso... </BODY> </HTML>
e poi tutti i link all'installazione nella home li inserisco con l'indirizzo esatto in modo che non vada a caricare l'index.html?
Potrebbe funzionare?
Questo settaggio si propaga poi anche in tutte le subdirectory, vero?
Dove dovrei inserire un .htaccess che invece vada a caricare il file corretto, no?Ovvio che la tua soluzione mi piace molto di più, ma il mio potrebbe essere un buon modo per aggirare l'ostacolo?
-
FUNZIONA!!!
Ho ricevuto la risposta dalla ML degli utenti apache...
Basta aggiungere
RewriteCond %{QUERY_STRING} ^$
all'inizio.
Grazie mille, Paolino, ma mi sa che mi fidanzo con Krist della ML di Apache
A parte gli scherzi... Grazie ancora per l'aiuto.