Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z mod_rewrite
Forum PHP.pl > Forum > PHP
klusekman
Mam w pliku httaccess takie reguły:
RewriteRule ^([^-]*).htm$ index.php?s=$1 [QSA]
RewriteRule ^([^-]*),([^-]*)$ index.php?s=$1&zmienna=$2 [QSA]

Chcę aby było tak że wpiszę w pasku strona.pl/glowna to się pojawi główna, a jak wpiszę strona.pl/glowna,4 to wyświetli główną i cośtam dopisze na końcu, ale skrypt uznaje po wpisaniu strona.pl/glowna,4 że $_GET['s'] to glowna,4 a nie samo glowna a tak nie powinno być i nie wiem co z tym zrobić żeby 4 uznało za $_GET['zmienna'], a glowna za $_GET['s'].
Blame
Jest taka zasada, że reguły w .htaccess układamy od najbardziej złożonych do najprostszych winksmiley.jpg
klusekman
Zamieniłem miejscami to niby dobrze działa, tyle że nie ma css ;/
Blame
Dwa rozwiązania:
1. Napisanie warunku, który będzie sprawdzał czy nie prosimy przypadkiem o plik,
2. Podanie bezwzględnej ścieżki do arkusza czyli "/adkusz_css.css" albo "http://twoja-strona.pl/arkusz_css.css".
klusekman
Chyba to nie będzie najlepsze rozwiązanie z tymi bezpośrednimi linkami bo skrypt będzie przenoszony, a z tego co się orientuje to jak css nie działa to obrazków też nie ma. Nie wiem za bardzo o co chodzi z tym "Napisanie warunku, który będzie sprawdzał czy nie prosimy przypadkiem o plik", no ale z tego co widzę to jest dużo wątków w internecie o tym że css nie działa z mod_rewrite, więc może coś znajdę
everth
Przecież podano ci rozwiązanie - ścieżka względna z podaniem korzenia czyli "/CSS/twoj.css" lub "/IMAGE/twojObrazek.png". W połączeniu z tagiem base działa to wszystko bardzo sprawnie.
klusekman
Mam plik css w katalogu głównym razem z indexem i base w headzie w takiej treści
  1. <base href="http://poddomena.domena.pl/" />

i wciąż css nie działa. W katalogu domena.pl znajduje się public_html/ a w nim katalog poddomena i jeżeli napiszę tak:
  1. <base href="http://domena.pl/poddomena/" />

to też nie działa

Więc nie wiem co mam napisać, żeby działało
everth
A linki masz w formie "/CSS/moj.css" czy też "CSS/moj.css"? Bo to ma znaczenie.

Albo wyłącz rewrite_mod dla tych plików. Na początku .htaccess daj coś takiego:
[APACHE] pobierz, plaintext
  1. <Files ~ "\.(png|jpg|css|js|PNG|JPG|JS|CSS)$">
  2. RewriteEngine Off
  3. </Files>
  4. #... cała reszta twojego htaccess
[APACHE] pobierz, plaintext
grzemach
ja robię to tak:
Na początku strony (a raczej w pliku konfiguracyjnym) definiuję nazwę serwera:
  1. define('__SERVER','http://server');


A później gdzieś w kodzie (gdzie jest to wymagane) używam tej nazwy:
  1. <link href="<?php echo __SERVER; ?>css/style.css" rel="stylesheet" type="text/css" />
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.