Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [.htaccess] Problem ze "skróconymi adresami"
Forum PHP.pl > Forum > Przedszkole
SubZero.
Witam,

Używam .htaccess do skracania adresów URL, dokładnie dwóch funkcji.
Pierwsza funkcja zamienia adres typu "adres.pl/english", a druga "adres.pl/english/about":

#
# 1 "adres.pl/english"
#
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ index.php?lang=$1 [L]
#
# 2 "adres.pl/english/about"
#
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?lang=$1&page=$2 [L]


Ale teraz mam problem, ponieważ jeśli używam adresu "adres.pl/img/picture001.jpg" to .htaccess też zamienia ten adres według drugiej funkcji. Moje pytanie czy można coś z tym zrobić?
Ponieważ języki są zdefiniowane w tej aplikacji, czy na przykład można zrobić tak aby .htaccess zamieniał tylko jeśli w pierwszej funkcji wystąpią wyrazy "english, polish, itd." ?
Maxik
RewriteRule ^(polish|english)$ index.php?lang=$1

Ale radziłbym zamiast / używać ,
SubZero.
Cytat(Maxik @ 8.02.2009, 18:00:14 ) *
RewriteRule ^(polish|english)$ index.php?lang=$1

Ale radziłbym zamiast / używać ,


Dzięki Maxik!

A czemu radzisz używać "," zamiast "/"?
Maxik
Nie ma wtedy problemów z folderami(/ jest traktowane jako ścieżka).
nexis
Kod
RewriteEngine On
# Sprawdza czy plik istnieje oraz czy nie jest pusty
RewriteCond %{REQUEST_FILENAME} -s [OR]
# Sprawdza czy adres nie jest istniejącym linkiem symbolicznym
RewriteCond %{REQUEST_FILENAME} -l [OR]
# Sprawdza czy adres nie jest istniejącym katalogiem
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)/(.*)$ /index.php?lang=$1&page=$2 [NC,L]
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.