Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z .htaccess
Forum PHP.pl > Forum > Przedszkole
joshua
Mam problem z RewriteRule w pliku .htaccess.
Plik wygląda następująco:
Kod
<Files index>
ForceType application/x-httpd-php
</Files>
RewriteEngine On
DirectoryIndex index
RewriteRule ^(.*)/$ index/$1 [L]
RewriteRule ^(.*)$ $1/ [L]

a plik index mniej więcej tak:
  1. <?php
  2. $arrParams = array();
  3. $strDefaultPath = '/newsy/pokaz/strona/1';
  4. $_SERVER['PATH_INFO'] = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : $strDefaultPath;
  5. $arrParams = explode( '/', substr( $_SERVER['PATH_INFO'], 1) );
  6. var_export( $arrParams );
  7. ?>


i niby wszystko jest ok.
wrzucam to do katalogu "sample" na localu, ale jak wywołam skrypt tak:
http://localhost/sample/news/
jest ok, zwraca mi ładnie "news" w tablicy.
ale gdy nie dodam "/" na końcu url'a, to się wali "The requested URL /engine/newsy was not found on this server.".
chcąc to naprawić zrobiłem tak:
Kod
RewriteRule ^(.*)$ $1/ [L]

czyli aby automatycznie od news dodawał na końcu "/", ale to nie pomogło.
wyskakuje komunikat 500, i koniec sad.gif
ma ktoś jakiś pomysł jak mogę to zrobić?
mls
Cytat(joshua @ 19.10.2006, 23:11:52 ) *
Kod
RewriteRule ^(.*)/$ index/$1 [L]
RewriteRule ^(.*)$ $1/ [L]


Proponuję:
Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/?$ index/$1 [L]
joshua
dzięki! wszystko działa tak jak powinno.
mógłbyś mi wytłumaczyć, dlaczego moje rozwiązanie było złe. i dlaczego twoje działa?

ale to tylko z czystej chęci zrozumienia tego i nauczenia się na przyszłość smile.gif
erix
http://httpd.apache.org/docs/2.0/mod/mod_r...tml#rewritecond

W tym przypadku RewriteCond umożliwia odczyt plików znajdujących się na serwerze zamiast przekazywania żądania do index...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.