Apache, rewrite + nowa domena wraz z poddomenami

0

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?

0

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ą?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.