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>
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]
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]
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.xZabiłem wam ćwieka problemem? czy mi sie zdaje
