Witam,
Muszę przenieść stronkę z apacha na IIS i mam pewien problem odnośnie ISAPI_Rewrite.
.htaccess na apachu działa na 100% dobrze.
Zawartość .htaccess:
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_]+)(/*)$ index.php?controller=$1
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ index.php?controller=$1&action=$2
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ index.php?controller=$1&action=$2¶m1=$3
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ index.php?controller=$1&action=$2¶m1=$3¶m2=$4
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ index.php?controller=$1&action=$2¶m1=$3¶m2=$4¶m3=$5
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ index.php?controller=$1&action=$2¶m1=$3¶m2=$4¶m3=$5¶m4=$6
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ index.php?controller=$1&action=$2¶m1=$3¶m2=$4¶m3=$5¶m4=$6¶m5=$7
Mam windows server 2003 i IIS 6. Zainstalowałem ISAPI_Rewrite 2.11.
Zmieniłem nazwe .htaccess na httpd.ini i dokonałem drobnych modyfikacji (wg tego co jest w dokumentacji: http://www.isapirewrite.com/
Plik httpd.ini teraz wygląda tak:
[ISAPI_Rewrite]
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_]+)(/*)$ /index.php\?controller=$1
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ /index.php\?controller=$1&action=$2
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ /index.php\?controller=$1&action=$2¶m1=$3
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ /index.php\?controller=$1&action=$2¶m1=$3¶m2=$4
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ /index.php\?controller=$1&action=$2¶m1=$3¶m2=$4¶m3=$5
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ /index.php\?controller=$1&action=$2¶m1=$3¶m2=$4¶m3=$5¶m4=$6
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)(/*)$ /index.php\?controller=$1&action=$2¶m1=$3¶m2=$4¶m3=$5¶m4=$6¶m5=$7
No i nie działa:(
Sam ISAPI_Rewrite na pewno łapie plik httpd.ini (chociaż jakoś dziwnie) bo dla np. reguły:
^(.*)$ index.php\?arg=$1
do $_GET'a wrzuca arg ale w ten sposób:
$_GET['arg'] === index.php?arg=TuJakisTekstWpisanyZaNazwąHosta
Gdy zamieniam RewriteRule z: ^(.*)$ index.php\?arg=$1 na ^([a-zA-Z0-9]*)$ index.php\?arg=$1 to po pierwszym odświeżeniu stronki (powiedzmy localhost/hahaha) rzeczywiście w $_GET['arg'] siedzi "hahaha", jednak po ponownym odświerzeniu dostaje komunikat z servera o braku stron
do wyświetlenia.
Wie ktoś może co jest grane? o co biega z tym IIS i ISAPI_Rewrite? Gdzie moge znaleźć informacje o tym jak budować warunki przepisania?
Niesty mimo iż dokumentacja http://www.isapirewrite.com/ jest dość obszerna to nic nie daje;/
Proszę was bardzo o pomoc.