Situazionemod_rewrite selezionare una cartella per il dominio
sto utilizzando Zend Framework, e quindi tentare di chiamare la cartella per indirizzo finisce in un fiasco e si ottiene l'errore: 'controllore non valido specificato'. Avevo bisogno di collegare altro forum all'applicazione in una cartella separata. Modifico file .htaccess come segue:
RewriteRule ^forum(.*)$ forum$1 [L]
e per un po 'è stato un bene, fino a quando mi sono reso conto del fatto che la pagina esiste in due versioni a due domini (php riconosce dominio [.pl/.co.uk ] e seleziona la lingua). Così ho deciso di separare i forum come due moduli separati (per esempio, la cartella per il forum in versione polacca sarà: forum_pl, e per il Regno Unito sarà: forum_uk - due diversi forum)
Qual è il problema?
Ha bisogno di riscrivere file .htaccess a lavorare in questo modo:
IF: www.domena.pl/forum
ALLORA: aperto allo script dalla cartella/forum_pl
IF: www.domain.co.uk/forum
THEN: aperto allo script dalla cartella/forum_uk.
La cosa peggiore è che quando ho provato a correggere il file .htaccess aggiungendo RewriteCond, il primo reindirizzamento non funziona più correttamente, anche dopo il ritorno alla versione originale (mostrata sopra).
Per favore aiutami e scusami se non ho trovato le risposte già date in precedenza.
EDIT:
Prima di lavoro soluzione
RewriteRule ^forum_pl(.*)$ forum_pl$1 [L]
RewriteRule ^forum_uk(.*)$ forum_uk$1 [L]
RewriteCond %{HTTP_HOST} ^www.domena.pl(.*) [NC]
RewriteRule ^forum(.*)$ forum_pl$1 [L]
RewriteCond %{HTTP_HOST} ^www.domain.co.uk(.*) [NC]
RewriteRule ^forum(.*)$ forum_uk$1 [L]
E 'sembrare che vuole lavorare, ma, i problemi che ha bisogno di una soluzione è (TODO):
- Quando si type: www.domain.pl/forum ti porta a www.domain.pl/forum_pl/ ma se digiti: www.domain.pl/forum/ ti porta a www.do main.pl/forum/ (leggi da forum_pl). Come farlo funziona nella prima situazione, come in seconda.
EDIT:
mia ultima soluzione:
#FORUM
#PL
RewriteCond %{REQUEST_URI} ^/forum$ [NC]
RewriteRule ^(.*)$ forum/ [R=301,L]
RewriteRule ^forum_pl(.*)$ forum_pl$1 [L]
RewriteCond %{REQUEST_URI} ^/forum_pl(.*)$ [NC]
RewriteRule ^(.*)$ http://www.domena.pl/forum/ [R=301,L] #Dosen't work properly (?)
RewriteCond %{HTTP_HOST} ^www.domena.pl(.*) [NC]
RewriteCond %{REQUEST_URI} ^/forum(/?)$ [NC]
RewriteRule ^forum[^/](.*)$ forum_pl/$1 #Dosen't work properly, but without it crash!
RewriteRule ^forum(.*)$ forum_pl$1 [L]
#UK
RewriteCond %{REQUEST_URI} ^/forum_uk(.*)$ [NC]
RewriteRule ^(.*)$ http://www.domain.co.uk/forum/ [R=301,L] #Dosen't work properly (?)
RewriteCond %{HTTP_HOST} ^www.domain.co.uk(.*) [NC]
RewriteCond %{REQUEST_URI} ^/forum(/?)$ [NC]
RewriteRule ^forum[^/](.*)$ forum_uk/$1 #Dosen't work properly, but without it crash!
RewriteRule ^forum(.*)$ forum_uk$1 [L]
finale, versione di lavoro:
RewriteRule ^forum_pl(.*)$ forum_pl$1 [L]
RewriteRule ^forum_uk(.*)$ forum_uk$1 [L]
RewriteRule ^forum_pl(.*)$ http://www.domena.pl/forum$1 [R=301,L] # Not working!
RewriteRule ^forum_uk(.*)$ http://www.domain.co.uk/forum$1 [R=301,L] # Not working!
# Normalize URL first:
RewriteRule ^forum$ forum/ [R=301,L]
# redirect to polish version of web under forum_pl if on .pl TLD and
# request is made to /forum/ (already normalized)
RewriteCond %{HTTP_HOST} =www.domena.pl [NC]
RewriteRule ^forum(.*)$ forum_pl$1 [L]
# redirect to english version of web under forum_en in on .uk TLD and
# request is made to /forum/
RewriteCond %{HTTP_HOST} =www.domain.co.uk [NC]
RewriteRule ^forum(.*)$ forum_uk$1 [L]
E 'un peccato che si può chiamare da la tua fronte ser forum_uk e forum_pl cartelle manualmente.
Grazie per la risposta ! Ma alla fine non è esattamente quello che sto cercando. Ora funziona in questo modo: si apre www.domena.pl/forum www.domena.pl/forum_pl/ www.domain.co.uk/forum apre www.domain.co.uk/forum_uk/ I don' t voglio _pl e _uk nell'URL :) – MrTomAsh
@ user1532418 quindi vuoi prendere script da cartelle forum_pl e forum_uk rispettivamente ma vuoi mantenere il/forum/nella barra degli indirizzi del browser? Se è così, è necessario rimuovere il 'R = 301' - lo reindirizza, quindi la barra degli indirizzi nel browser riflette la modifica –
In qualche modo inizia a funzionare! Grazie! – MrTomAsh