Sen z powiek spędza mi ostatnio problem z mod_rewrite na serwerze u jednego z klientów.
Reguła:
Kod
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.adres.pl/index.php?req=$0 [L,NC,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.adres.pl/index.php?req=$0 [L,NC,QSA]
Serwis jest virtual hostem.
httpd.conf
Kod
<Directory "/www/www2/">
Options SymLinksIfOwnerMatch Indexes FollowSymLinks
AllowOverride All
</Directory>
<VirtualHost ip_serwera>
ServerAdmin webmaster@www.adres.pl
DocumentRoot /www/www2/
ServerName adres.pl
ServerAlias www.adres.pl
ErrorLog logs/www2-error_log
CustomLog logs/www2-access_log common
</VirtualHost>
Options SymLinksIfOwnerMatch Indexes FollowSymLinks
AllowOverride All
</Directory>
<VirtualHost ip_serwera>
ServerAdmin webmaster@www.adres.pl
DocumentRoot /www/www2/
ServerName adres.pl
ServerAlias www.adres.pl
ErrorLog logs/www2-error_log
CustomLog logs/www2-access_log common
</VirtualHost>
i problem jest taki że apache robi przekierowanie 302, i urle brzydko wyglądają.
Zamiast
www.adres.pl/pl/ONas
jest
www.adres.pl/index.php?req=pl/ONas
Kawałek logów:
Kod
escaping http://www.adres.pl/index.php for redirect
redirect to http://www.adres.pl/index.php?req=pl/ONas/ [REDIRECT/302]
redirect to http://www.adres.pl/index.php?req=pl/ONas/ [REDIRECT/302]
Serwer to apache2.
Żeby było śmieszniej u mnie lokalnie na windzie dokładnie taka sama konfiguracja działa bez zarzutu. Na tymczasowym serwerze firmowym też jest ok, tylko że mamy apacha jedynke.
Nie wiem co jest grane, a pomysły mi się już skończyły.
Dzięki z góry za pomoc.