Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
.htaccess Przyjazne linki - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Początkujący webmaster (https://www.webmastertalk.pl/forum-poczatkujacy-webmaster)
+--- Wątek: .htaccess Przyjazne linki (/thread-htaccess-przyjazne-linki)



.htaccess Przyjazne linki - benny - 11-08-2011

Witam,

Na początku opiszę problem.
Zależało mi aby url wyglądały tak: adres/opcja1/opcja2/opcja3/ itd.
O .htaccess zacząłem czytać dopiero na potrzeby tego problemu i trochę tego "nie ogarniam". W sumie wszystko spoko, ale np. mając na serwerze folder sql z phpMyAdmin i wpisując w przeglądarce adres/sql wszystko działa ok, do momentu jeśli mam tylko jedną regułę na jeden folder, jeśli się to zmieni na więcej reguł, nie mogę się dostać do phpMyAdmina. Domyślam się że błąd polega na tym, że po adres/sql/ jest np. index.php?db=nazwa i dalej jakieś tokeny itp.

Jak zatem zmienić plik .htaccess, żeby po pierwsze, obojętnie ile dodać opcji i tak były "przyjazymi linkami", czy jest jakiś inny sposób niż dodawanie po kolei każdej reguły? I jak to zrobić, żeby poprawnie działał przy tym folder sql?

Kod z .htaccess
Kod:
RewriteEngine on

RewriteBase /
RewriteRule ^/$ index.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#PIERWSZA OPCJA
RewriteRule ^([^/]+)/?$ /?subpage=$1 [L]

#DRUGA OPCJA
RewriteRule ^([^/]+)/([^/]+)/?$ ?subpage=$1&option=$2



RE: .htaccess Przyjazne linki - mateo - 11-08-2011

Wydaje mi się, że powinno pomóc zamienienie
Kod PHP:
/?$ 
na
/\?$

Po za tym pamiętaj, że
Kod PHP:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond 
%{REQUEST_FILENAME} !-
musisz wrzucać przed każdą kolejną regułką.


RE: .htaccess Przyjazne linki - benny - 11-08-2011

Działa! Trochę inaczej niż mówiłeś, ale dzięki za naprowadzenie.
Działający kod wygląda tak:
Kod:
RewriteEngine on

RewriteBase /
RewriteRule ^/$ index.php

#PIERWSZA OPCJA
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /?subpage=$1 [L]

#DRUGA OPCJA
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ /?subpage=$1&option=$2

Należało zostawić /?$, nei zmianiać na /\?$, ale dodać przed każdą regułą RewriteCond Smile