Mam zainstalowanego apache 1.3.23, php 4.2.2 (nie wiem czy to ma znaczenie ale podaje)
Chcę uruchomić na tym mod_rewrite.
Skorzystałem z instrukcji http://wiki.php.pl/index.php/Instalacja_Ap...uga_mod_rewrite wykonałem odpowiednie modyfikacje httpd.conf apacha (oczywiście restarty przy każdej zmianie). Teraz (ważniejsze) ustawienia wyglądają tak:
Kod
LoadModule rewrite_module modules/mod_rewrite.so

DocumentRoot "c:\http"
# mod_rewrite support - nie wiem czy to potrzebne skoro hash jest...
<Directory />
    Options FollowSymLinks
    AllowOverride FileInfo
</Directory>
<Directory "c:\http">
    Options Indexes FollowSymLinks
    AllowOverride FileInfo
    Order allow,deny
    Allow from all
</Directory>

<IfModule mod_rewrite.so>
RewriteEngine On
</IfModule>
<IfModule mod_dir.c>
    DirectoryIndex index.php default.php main.php index.html
</IfModule>

AccessFileName .htaccess

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>


sprawa wygląda tak, że w katalogu "strona" mam plik .htaccess, który na koncie hostingowym działa prawidłowo:
Kod
RewriteEngine On
RewriteRule ^([0-9]*)$ index.php?id=$1 [L]


wszystko jest ok na koncie, akceptowane sa linki typu www.domena.com/1
natomiast juz po wpisaniu localhost/stronka/ mam "400 Bad request"
inne stronki na serwrwie lokalnym bez .htaccess działają dobrze. Pomyślałem moze mod_rewrite nie działa, ale skorzystałem z najprostrzego testu:
Kod
RewriteEngine On
RewriteCond %{HTTP_HOST} ^.*$ [NC]
#RewriteRule ^(.*)$ http://www.domena.com.pl/ [R]

i to na lokalnym działa, czyli akceptuje pliki .htaccess
Próbowałem juz w głównym katalogu na lokalu umieszczać .htacces z wpisami typu rewriteengine on, próbowałem bez tego, ale wyskakuje mi albo błąd 400 albo nawet czasem 500.

Jeżeli potrzebne są jakieś dodatkowe info to piszcie, bo ja sam nie wiem co jeszcze można podać.

Podsumowując: mod_rewrite działa ogólnie, ale nie akceptuje typowych regółek. Czy mam coś jeszcze gdzieś wpisać? utworzyć virtualhost'a, no nie wiem... poradźcie.

Wiedze, że jest to jakiś niewykły i strasznie skomplikowany problem.
No nie jest. Problem jest w Apache 1.3.x i wyrażeniach PERL.
Miałem wyrażenie:
Kod
RewriteRule ([0-9]*)$ index.php?id=$1 [L]

zastapiłem je wyrażeniem
Kod
RewriteRule ^[^/_]$ /index.php?id=$1 [L]
i w tym momencie te skrypty mi działają, ale już przerzucam sie na apache 2.x
Zabiłem wam ćwieka problemem? czy mi sie zdaje tiredsmiley.gif