![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 24.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Chciałbym, aby po wpisaniu adresu URL:
example.com/7890/page.html był wczytywany na serwerze plik z katalogu: /7/8/9/0/page.html (lub np. /abc/page.html => /a/b/c/page.html) Jak to zrobić za pomocą mod rewrite i .htaccess? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 25 Dołączył: 27.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Raczej tego nie zrobisz, ponieważ mod_rewrite działa na zasadzie przepisywania linków, nie ich modyfikacji. Niemniej jednak ciekawe pytanie - jeśli ktoś zna odpowiedź to z chęcią także się dowiem :-)
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Jeśli ilość znaków jest stała można pokusić się o coś takiego:
RewriteRule ^(.){1}/(.){1}/(.){1}/(.*)\.html$ /$1/$2/$3/$4\.html [L] Regułkę napisałem bez przetestowania, więc może wymagać drobnej modyfikacji. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 305 Pomógł: 25 Dołączył: 27.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
No właśnie, jeśli liczba znaków jest stała. A co jeśli nie jest stała (ok, można dać znak zapytania w wyrażeniu) lub jeśli przekracza 10 znaków? :-)
Ten post edytował kilas88 5.08.2010, 13:51:09 |
|
|
![]()
Post
#6
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
Na upartego możesz zrobić tak:
RewriteRule ^(.){1}/(.){1}/(.){1}/(.*)\.html$ /$1/$2/$3/$4\.html [L] RewriteRule ^(.){1}/(.){1}/(.*)\.html$ /$1/$2/$3\.html [L] RewriteRule ^(.){1}/(.*)\.html$ /$1/$2\.html [L] Takie coś pozwoli na "dynamiczne" określenie ilości znaków. Niestety w przypadku większej ilości znaków nie zda to egzaminu i pozostanie jedynie PHP. |
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
~batman, mimo wszystko lepiej jest zawęzić zakres znaków. Kropka wskazuje na dowolny, więc ktoś mógłby tam wstawić slesza i nie ręczę za skutki. Poza tym, w podstawniku nie trzeba escape'ować kropki. (IMG:style_emoticons/default/winksmiley.jpg)
|
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 2 921 Pomógł: 269 Dołączył: 11.08.2005 Skąd: 127.0.0.1 ![]() |
~erix
Zawężenie regułki do konkretnych znaków powinno być wykonane, tutaj nie ma dyskusji. Chciałem jedynie pokazać przykład jak to działa. Co do kropki, to zawsze miałem problem. Dzięki za wyjaśnienie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 20:40 |