Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: .htaccess mod_rewrite.
Forum PHP.pl > Forum > PHP
Fluke
Witam. Mam problem z .htaccess a dokładnie z cool URLs.
Tutaj mam plik htaccess:
  1. <IfModule mod_rewrite.c>
  2. RewriteEngine on
  3. RewriteCond %{REQUEST_FILENAME} !-f
  4.  
  5.  
  6. RewriteRule ^([^/]*)$ index.php?op=$1 [L]
  7. RewriteRule ^([^/]+)/([^/]+)$ index.php?op=$1&a=$2 [L]
  8.  
  9.  
  10. </IfModule>


W indeksie czytam sobie tablicę $_GET. Wszystko fajnie chodzi dla www.mojastrona.pl/abcd. Natomiast jak już dam www.mojastrona.pl/abcd/ to wychodzi że nie ma takiej strony. Gdy mam: www.mojastrona.pl/abcd/asd to już działa tylko że strona pozbyła się jakichkolwiek styli. Gdy w <link href="http://localhost/style/style.css"> to też mi nie odnajduje.

Nie wiem jak to zrobić, nakombinowałem się i pogłubiłem.
Pozdrawiam.
Yasay
Nie wiem czy dobrze myśle ale spróbuj tak :
Do
  1. RewriteCond %{REQUEST_FILENAME} !-f

dodaj
  1. RewriteCond %{REQUEST_FILENAME} !-d


zanim przekształci url sprawdzi czy na serwerze znajdują się taki pliki i foldery jak w zapytaniu.

za rewriterule powinny wyglądać chyba mniej więcej tak:
  1. RewriteRule ^([^/]*)/?$ index.php?op=$1 [L]
  2. RewriteRule ^([^/]+)/([^/]+)/?$ index.php?op=$1&a=$2 [L]


Całośc powinna wyglądać mniej więcej tak :
  1. <IfModule mod_rewrite.c>
  2. RewriteEngine on
  3. RewriteCond %{REQUEST_FILENAME} !-f
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5.  
  6.  
  7. RewriteRule ^([^/]+)/([^/]+)/?$ index.php?op=$1&a=$2 [L]
  8. RewriteRule ^([^/]*)/?$ index.php?op=$1 [L]
  9.  
  10.  
  11. </IfModule>
erix
Cytat
to już działa tylko że strona pozbyła się jakichkolwiek styli

A czy przeglądarka wie o tym, że korzystasz z przepisywania? Nie wie, więc się nie dziw. winksmiley.jpg

http://eriz.pcinside.pl/weblog/mod_rewrite...wiazac-208.html
Fluke
Mam taki plik .htaccess

  1. <IfModule mod_rewrite.c>
  2. RewriteEngine on
  3.  
  4. RewriteCond %{REQUEST_FILENAME} !-f
  5. RewriteCond %{REQUEST_FILENAME} !-d
  6. RewriteCond %{REQUEST_URI} !^/index.php
  7. RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$ [NC] #1
  8. RewriteRule (.*) index.php?page=$1
  9.  
  10. </IfModule>


I teraz działa wszystko jak należy. Tylko nie wiem do czego służy linia z komentarzem #1
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.