Joomla.it Forum
Non solo Joomla... => Sezione dedicata ai Server => : Downunder 25 Feb 2010, 10:17:20
-
mi e' venuto in mente una cosa:
se io nella root principale inserisco solo un htaccess che ha come regola:
se si digita www.miosito.com vai a /miosito
se si digita forum.miosito.com o www.miosito.com/forum vai a /forum
e' possibile farlo? credete che puo' recare problemi ai motori di ricerca?
-
ciao,
così dovrebbe funzionare:
RewriteCond %{HTTP_HOST} !^forum\. [OR]
RewriteCond %{REQUEST_URI} !^/forum
RewriteRule (.*) miosito/$1 [L]
RewriteCond %{HTTP_HOST} ^forum\.
RewriteRule (.*) forum/$1 [L]
e metti il sito in /miosito ed il forum in /forum
non dovrebbe dare problemi con i motori di ricerca.
ciao,
marco
-
RewriteCond %{HTTP_HOST} !^forum\. [OR]
Puoi spiegarmi cortesemente la sintassi punto punto?
ovvero
%{HTTP_HOST} -> a cosa serve e come si comporta
!^forum\ -> forum e' palese che sia la directory, ma il punto esclamativo e l'apice iniziale? e il basckslash finale fa sempre parte della directory ho ua un altro significato?
RewriteCond %{REQUEST_URI} !^/forum
RewriteRule (.*) miosito/$1 [L]
Perche' un questo c'e' un request url?
Il significato del .* ? e del $1 finale? e la [L]?
scusa il bombardamento ma come vedi non voglio farmi fare il lavoro da voi, voglio capire.
quindi hai motori di ricerca non cambia nulla, ne a livello di posizionamento che a livello di link?
Cosa appare nella barra del browser? il vecchio indirizzo o il nuovo reindirizzato? (quindi con quel bruttissimo /miosito finale?)
grazie ancora
-
Ho trovato questo che per chi e' a digiuno come me di .htaccess e apache e' praticamente una mano santa, praticamente spiega tutto passo passo ogni singolo carattere, e' veramente quello che cercavo.
http://forum.modrewrite.com
Solo che quando spiega il contenuto di %{XXXXX} non spiega quali sono le variabili da inserire all'interno e cosa fanno (e si ricollega alla mia domanda HTTP_HOST ecc)
siccome una volta mi hanno detto HTTP_HOST, in un'altra HTTP_USER_AGENT in un'altra REMOTE_HOST non so ne cosa sono ne cosa fanno...
-
Allora...
Vi spiego l'esigenza poi vi mostro il codice che ho scritto cosi' mi dite se e' giusto.
in base a quello che ho studiato fino ad adesso:
Esigenza:
Esistono due nomi di domini (fittizi) il principale ABC.com e quello di supporto CBA.com (uno e' l'inverso dell'altro).
Richiesta 1) Il secondario deve reindirizzarsi verso il primario
Richiesta 2) Il primario deve reindirizzarsi in una sotto directory "ALFA" invece che la root principale.
Richiesta 3) forzare il WWW.
RewriteCond %{HTTP_HOST} ^CBA.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.CBA.com$ [OR]
RewriteCond %{HTTP_HOST} ^ABC.com$
RewriteRule ^/?$ "http\:\/\/www\.ABC\.com\/ALFA" [R=301,L]
E questo mi funziona alla grande
Esigenza 2:
c'e' un forum nella sottocartella /FORUM
richiesta 1) l'indirizzo finale deve essere un sottodominio ovvero forum.ABC.com
Richiesta 2) se si scrive www.ABC.com/forum deve diventare forum.ABC.com
RewriteCond %{HTTP_HOST} ^forum\. [OR]
RewriteCond %{REQUEST_URI} ^\/\forum$
RewriteRule (.*) forum\/\.\ABC\.\com\/\$1 [L]
E non mi funziona! pensavo che forse avendo una [L] alla fine del primo redirect 301 non legge il secondo set di regole.
In questo caso devo eliminare quella [L] e lasciarla solo al set finale di regole per chiudere le condizioni?
Esigenza 3:
Sulla barra del browser e dei motori di ricerca non devono apparire le sottodirectory
www.ABC.com/ALFA/qualchecosa.html
deve apparire www.ABC.com/qualchecosa.html
Il codice ancora lo devo stabilire in questo caso, e mi chiedevo:
l 'HTaccess che sto creando nella root, dara' fastidio al HTaccess che ho nelle due sottodirectory, dove in una ho joomla nell'altra ho un forum?
Se si come posso evitarlo?
-
ciao valerios,
1.
E questo mi funziona alla grande
strano ;D ;D ;D
la seconda parte di RewriteRule non è una regex, quindi non c'è bisogno di escaping:
RewriteRule ^/?$ http://www.ABC.com/ALFA [R=301,L]
ma non ho capito che dovrebbe fare la condizione di test... c'è qualcosa che non mi quadra.
2.
ma il forum dove è in una sottocartella o in un dominio di terzo livello?
btw: la L ferma solo le RewriteCond, nel primo gruppo hai una R che blocca l'esecuzione di tutto
3.
http://www.joomla.it/articoli-della-community/4040-modificare-gli-url-in-htaccess-con-le-funzioni-di-modrewrite.html
gli .htaccess non si danno noia tra di loro, ovviamente però le regole inserite NON debbono essere tra loro in contrasto.
ciao,
marco
-
ciao valerios,
1.
E questo mi funziona alla grande
strano ;D ;D ;D
la seconda parte di RewriteRule non è una regex, quindi non c'è bisogno di escaping:
RewriteRule ^/?$ http://www.ABC.com/ALFA [R=301,L]
ma non ho capito che dovrebbe fare la condizione di test... c'è qualcosa che non mi quadra.
Si vede che ho un server gajardo!
Condizione di test? che condizione di test parli?
2.
ma il forum dove è in una sottocartella o in un dominio di terzo livello?
btw: la L ferma solo le RewriteCond, nel primo gruppo hai una R che blocca l'esecuzione di tutto
fondamentalmente il forum e' una sottocartella, ma nel cpanel ho creato anche un sottodominio che e' appunto ALFA.ABC.COM
quindi la [L] significa che quel set di istruzioni per quella condizione finisce la', come un "endif" insomma
non capisco a quale r ti riferisci, l'unica r che uso e' nella condizione OR che a quanto ho capito funziona appunto come OR.
3.
http://www.joomla.it/articoli-della-community/4040-modificare-gli-url-in-htaccess-con-le-funzioni-di-modrewrite.html
gli .htaccess non si danno noia tra di loro, ovviamente però le regole inserite NON debbono essere tra loro in contrasto.
ciao,
marco
leggero' anche quello... :o
-
ciao.
1.
^/?$ mi riferivo a questa.
2.
allora dovrebbe essere quella che ti ho postato all'inizio
RewriteCond %{HTTP_HOST} ^forum\.
RewriteRule (.*) forum/$1 [L]
la L come endif: sì, indica che le successive RewriteRule non dipendono dalle precedenti RewriteCond.
R indicavo la R=301, ma ora mi sono perso :(
ciao,
marco
-
Ciao Marco, scusami ma ormai sono in palla!
ho questa mia maledetta condizione:
miodominio.com/forum (con e senza www; con e senza lo slash finale)
devono reindirizzare in ogni caso a:
forum.miodominio.com
Ovviamente se il visitatore digita direttamente quest'ultimo URL non succede nulla perche' e' quello giusto
Scusa ancora ma non ne sto uscendo fuori!
-
ciao valerios,
ti rispondo come se non ci fosse tutto il resto perché, ti confesso, proprio non ho voglia di rileggere tutto:
RewriteRule ^forum/?(.*) http://forum.%{HTTP_HOST}/$1 [R=301,L]
ciao,
marco
-
Nah, non funge
getto la spugna!
non capisco se devo aspettare un poco prima che i cambiamenti abbiano effetto.
e sto cominciando a pensare che i centinaia di test non andati a buon fine non siano per colpa mia, ci deve essere qualcosa nel server che non va con ht access!!!
in ogni caso, grazie tantissime marco
-
questo di sicuro funziona.
rivedi la struttura del sito e dei sotto domini ed elimina dallo .htaccess tutti gli esperimenti.
riparti da un codice pulito.
ciao e buona fortuna,
marco
-
Ciao
Forse non metti gli .htaccess nei posti giusti. Se io digito per esempio forum.miosito.com per essere trasferito alla sottocartella in cui hai effettivamente il forum e cioè miosito.com/forum, l'htaccess con le istruzioni di redirect deve trovarsi nel sottodominio forum.miosito.com, mi chiedo l'hai messo nel posto giusto? Perchè deve per forza funzionare e subito senza aspettare nulla.
-
Grazie per le risposte.