konto usunięte

Temat: Apache, rewrite + nowa domena wraz z poddomenami

Mam 2 stare domeny, które chce w jakiś szybki i sensowny sposób przekierowac na serwerze na nową. Jeśli ktoś wpisze starą to go przekieruje na nową z zachowanie przedrostka www czy pod domeny oraz właściwym url.

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(.*\.)?(univ|ug)\.gda\.localhost$ [NC]
RewriteRule ^(.*) %{HTTP_HOST}$1 [C]
RewriteRule ^(.*\.)?(univ|ug)\.gda\.localhost(.*)? http://$1ug.edu.localhost/$3 [L,R=301]


Powyższy kod prawie działa. http://test.univ.gda.localhost/ przekierowuje do http://test.ug.edu.localhost/univgda/ z tym, że univgda/ jest zbędne i jest fizycznym katalogiem, gdzie jest zdefiniowany virtualhost w Apachu:
<VirtualHost 127.0.0.1:80>
DocumentRoot D:/xampp/htdocs/ugedu
ServerName ug.edu.localhost
ServerAlias www.ug.edu.localhost
ServerAlias *.ug.edu.localhost
</VirtualHost>

<VirtualHost 127.0.0.1:80>
DocumentRoot D:/xampp/htdocs/univgda
ServerName univ.gda.localhost
ServerAlias www.univ.gda.localhost
ServerAlias *.univ.gda.localhost
</VirtualHost>


Jakieś pomysły?

konto usunięte

Temat: Apache, rewrite + nowa domena wraz z poddomenami

Nie wiem co z czym się gryzło, ale użycie innej domeny niż localhost spowodowalo, że problem z doklejaniem fizycznego katalogu zniknął.
RewriteEngine on

RewriteCond %{HTTP_HOST} ^(.*\.)?(univ|ug)\.gda\.l$ [NC]
RewriteRule ^(.*) %{HTTP_HOST}$1 [C]
RewriteRule ^(.*\.)?(univ|ug)\.gda\.l(.*)? http://$1ug.edu.l/ [L,R=301]


<VirtualHost 127.0.0.1:80>
DocumentRoot D:/xampp/htdocs/ugedu/
ServerName ug.edu.l
ServerAlias *.ug.edu.l
</VirtualHost>

<VirtualHost 127.0.0.1:80>
DocumentRoot D:/xampp/htdocs/univgda/
ServerName univ.gda.l
ServerAlias *.univ.gda.l
</VirtualHost>


Pojawił się jednak kolejny, a mianowicie. Jak zmusić apache'a do przepisywania ścieżki do katalogów, np. http://test.univ.gda.l/kat1/kat2/?param=1 przerzuca na http://test.ug.edu.l/?param=1 czyli wycina nazwy katalogów. Co może być przyczyną?
Jacek Z.

Jacek Z. Web Application
Developer

Temat: Apache, rewrite + nowa domena wraz z poddomenami

Wydaje mi się, że problem zniknął, bo w drugim przypadku usunąłeś $3 z reguły. Ale z tego samego powodu nie masz przepisywanej ścieżki do katalogów. Trzeba by dojść dlaczego apache wpisywał jako ścieżkę katalog virtualhosta (tak jak by wcześniej następowało przekierowanie na katalog virtalhosta i dopiero wtedy zadziałała reguła z htaccess.. Czy za ten stan rzeczy nie może być odpowiedzialna przypadkiem jedna linijka powyżej?).

konto usunięte

Temat: Apache, rewrite + nowa domena wraz z poddomenami

Sprawę udało się rozwiązać na poziomie APACHE'a. Problemem okazało się RewriteBase, a mianowicie jego zróżnicowanie w zależności, który VirtualHost się odpalał. Mniejsza o szczegóły. Wystarczyło dodać VirtualHost, który obsłuży te "złe" hosty i przekieruje je na właściwy :)
<VirtualHost *:80>
DocumentRoot /var/www/univgda/
ServerName univ.gda.l
ServerAlias *.univ.gda.l
ServerAlias ug.gda.l
ServerAlias *.ug.gda.l

RewriteEngine on
RewriteCond %{HTTP_HOST} (.*)(univ|ug)\.gda\.l$
RewriteRule (.*) http://%1ug.edu.l$1 [QSA,R=301,L]
</VirtualHost>


Co, dzięki umieszczeniu przekierowania w definicji VH, daje upragniony przeze mnie efekt :)Sebastian Zaborowski edytował(a) ten post dnia 04.09.11 o godzinie 11:36

Następna dyskusja:

Apache, rewrite + nowa dome...




Wyślij zaproszenie do