![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 20.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam problem z napisaniem mod_rewrite. Tworzę serwis, który składa się z dużej ilości plików .php a chciał bym utworzyć przyjazne linki by nie było np.: Kod index.php?co=informacje&typ=techniczne tylko Kod index/informacje/techniczne/ Problem w tym że przeszukałem kilka for, poradników i nie znalazłem rozwiązania mojego problemu. Chodzi mi dokładniej o: Mam do dyspozycji przypuśćmy 30 plików: a.php, b.php, c.php i tak dalej Wszystkie te pliki mają tak samo zdefiniowane GET np.: a.php?co=cos1&typ=cos2 Próbowałem napisać to na różne sposoby np.: Kod RewriteRule ^([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/([a-zA-Z-_0-9]+)/$ $1.php?co=$2&typ=$3 [L] Gdzie z nazwę pliku pobiera przed pierwszego slash'a. Jak mi się udało to pobierało razem z .php a jak usunąłem .php to w ogóle nie wczytywało plików. Może trochę to kijowo wytłumaczyłem. Jak bym miał pisać mod_rewrite dla każdego pliku to plik .htaccess miał by powyżej 1000 linijek kodu Ten post edytował Wozzi 1.11.2011, 21:47:45 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat Może trochę to kijowo wytłumaczyłem. Jak bym miał pisać mod_rewrite dla każdego pliku to plik .htaccess miał by powyżej 1000 linijek kodu Dlatego używa się routerów, gdzie niekiedy można zdefiniować jakąś taką uniwersalną regułę. Twoja reguła u mnie działa, w sensie działa dla takiego przykładu: Kod http://localhost/test/raz/dwa/ a plik test.php który zawiera: Kod <?php var_dump($_GET); zwraca coś takiego: Kod array 'co' => string 'raz' (length=3) 'typ' => string 'dwa' (length=3) Także działa jak najbardziej poprawnie. Nie mniej twoją regułkę, zastąpił bym taką: Kod RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/$ $1.php?co=$2&typ=$3 [NC,L] A cały htaccess wygląda u mnie tak: Kod <IfModule mod_rewrite.c>
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/$ $1.php?co=$2&typ=$3 [NC,L] </IfModule> |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 06:30 |