Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [.htaccess] Zmiana linku
Forum PHP.pl > Forum > Przedszkole
3502274
Witam,

stworzyłem galerie która dodaje obrazki do katalogu:

- http://www.xxx.pl/yyy/galeria/photoalbum/a...2/pgomin_20.jpg

natomiast chciał bym pominąć w linku do tych zdjęć znaczniki /yyy/ tak by link:

- http://www.xxx.pl/galeria/photoalbum/album_2/pgomin_20.jpg

pokazywał to samo co yyy, a natomiast yyy przekierowywał od razu do tego 'bez' yyy.

Niestety przewyższyło to moje umiejętności w dziedzinie .htaccess, a nie ciężko tam o błąd. Czy byłby ktoś w stanie napisać to dla mnie? Dodam iż nie mam opcji obejścia tego drogą ustawienia inaczej katalogów... i jedyne możliwe rozwiązanie to właśnie pominięcie tego w adresie.
Piotrwusek
Kod
RewriteRule ^galeria/photoalbum/album_2/pgomin_20.jpg$ yyy/galeria/photoalbum/album_2/pgomin_20.jpg



Próbowałeś tak?
3502274
Działa to rozwiązanie... testowałem teraz czy będzie zgodne jeśli nadam po prostu:

Kod
/[a-zA-Z\-\_]/


jako dowolny ciąg znaków i już w takiej postaci niestety nie chce działać. Gdzie mogę robić błąd?

Kod
RewriteRule ^galeria/[a-zA-Z\-\_]/[a-zA-Z\-\_]/[a-zA-Z\-\_]/.{jpg}$ pgo/galeria/[a-zA-Z\-\_]/[a-zA-Z\-\_]/[a-zA-Z\-\_]/.{jpg}
Piotrwusek
nie tak
Kod
RewriteRule ^galeria/[a-zA-Z\-\_]/[a-zA-Z\-\_]/[a-zA-Z\-\_]/.{jpg}$ pgo/galeria/[a-zA-Z\-\_]/[a-zA-Z\-\_]/[a-zA-Z\-\_]/.{jpg}


jak już


ale tego nie jestem w 100% pewien
Kod
RewriteRule ^galeria/[a-zA-Z\-\_]/[a-zA-Z\-\_]/[a-zA-Z\-\_]/.{jpg}$ pgo/galeria/$1/$2/$3/.{jpg}




--------------- edit
jeszcze

ja bym dal zamiast tego

Kod
[a-zA-Z\-\_]


to

Kod
[^*]


będzie to uwzględniało prawie wszystko
3502274
Niestety nie działa to...

Kod
RewriteRule ^galeria/[^*]/[^*]/[^*]/.{jpg}$ pgo/galeria/$1/$2/$3/.{jpg}


Czy przypadkiem przed kropką nie trzeba też dać jakiejś zmiennej? Testowałem podobnie jak reszta lecz też nie wychodzi.
kwiateusz
Kod
RewriteRule ^galeria/(.+)/(.+)/(.+)/\.jpg$ pgo/galeria/$1/$2/$3/.jpg


. <- dowolny znak poza enterem
+ dopasowuje 1 lub wiecej razy

z czym zawsze mam problemy z ^ (poczatek ciagu) i czy rewrite zaczynac / jak i sciezke na ktora sie rewrituje, ale z grubsza to tak ma wygladac
nawiasy okragle bo kwadratowych nie lapie jako $1
3502274
uff też nic tongue.gif

Ogólnie rzecz biorąc to działało:
Kod
RewriteRule ^galeria/photoalbum/album_2/pgomin_20.jpg$ pgo/galeria/photoalbum/album_2/pgomin_20.jpg


Gdy wywoływałem:
http://www.xxx.net/galeria/photoalbum/album_2/pgomin_20.jpg

dostawałem obrazek... natomiast teraz gdy używam tego:
Kod
RewriteRule ^galeria/(.+)/(.+)/(.+)/\.jpg$ pgo/galeria/$1/$2/$3/.jpg


pojawia się

Cytat
404 Not Found
The request /galeria/photoalbum/album_2/pgomin_20.jpg was not found on this server.
kwiateusz
aj wzorowalem sie na przykladzie poprzednich postow a tu widże gafe btw komunikat tez jakis dziwny...

Kod
RewriteRule ^galeria/(.+)/(.+)/(.+)\.jpg$ pgo/galeria/$1/$2/$3.jpg
3502274
Ok teraz już działa, smile.gif a więc pierwsza część zagadki rozwikłana... zdjęcia są dostępne pod adresem bez 'pgo', a chciałbym by wchodząc przez 'pgo' automatycznie zmieniało link na ten nowy bez 'pgo'... w przypadku domen wywoływało się to prostą funkcją:

Kod
RewriteCond %{HTTP_HOST} ^projektgryok.home.pl [NC]
RewriteRule ^(.*)$ http://www.gryok.net/ [r=301,NC]


Natomiast jak dopisać tam te wszystkie zmienne?

Za rozwiązanie problemu kwiateusz ogromne podziękowania jak i Piotrwusek!
kwiateusz
Kod
RewriteCond %{REQUEST_URI} pgo/galeria.* [NC]
RewriteRule pgo/galeria/(.+)/(.+)/(.+)\.jpg$ galeria/$1/$2/$3.jpg[r=301,NC]


nie dam glowy czy zadziala, pisane z palca ( i ksiazeczki)
3502274
Brak jakichkolwiek efektów... obrazek jest dostępny pod 2 linkami...

/Edit:
Mała wada pierwszego skryptu...

jeśli obrazek nazywa się:
pgomin.jpg jest ok!
natomiast miniaturki przybierają nazwę:
_mini_1_pgomin.jpg i wtedy bez /pgo/ nie wyświetlają się...

domyślam się że to (.+) jest za to odpowiedzialny bo nie rozumie '_'... znajdziemy jakieś proste wyjście czy będę musiał przerobić lekko galerię?
Piotrwusek
Kod
RewriteRule ^galeria/([^*]+)/([^*]+)/([^*]+).jpg$ pgo/galeria/$1/$2/$3.jpg [L]


u mnie działa
3502274
Piotrwusek podany przez Ciebie kod działa analogicznie jak ten kwieteusza... natomiast wciąż nie poprawia efektu z nazwą zaczynającą się na '_'.
Piotrwusek
Ja mam taki link


http://mojewarzywa.pl/article/343/_salatka_z_feta_marzeny

Działa exclamation.gif


a jest ustawione tak jak Ci podałem!
Maxik
([^-]+) sprawdź coś takiego i wykomentuj kropkę przed jpg \.jpg . Reasumując:
Kod
RewriteRule ^galeria/([^-]+)/([^-]+)/([^-]+)\.jpg$ pgo/galeria/$1/$2/$3.jpg [L,NC,NS]


Powinno działać
3502274
Cytat(Maxik @ 22.07.2008, 17:16:05 ) *
([^-]+) sprawdź coś takiego i wykomentuj kropkę przed jpg \.jpg . Reasumując:
Kod
RewriteRule ^galeria/([^-]+)/([^-]+)/([^-]+)\.jpg$ pgo/galeria/$1/$2/$3.jpg [L,NC,NS]


Powinno działać


Powinno lecz niestety tak nie jest... wciąż obrazki się nie wyświetlają... Ten problem można obejść inaczej, zmienię tylko założenia galerii by nie dawała _ na początku nazwy miniaturek.

A może ktoś spróbuję ułożyć kod tak by spełniał to założenie:


Cytat
Ok teraz już działa, smile.gif a więc pierwsza część zagadki rozwikłana... zdjęcia są dostępne pod adresem bez 'pgo', a chciałbym by wchodząc przez 'pgo' automatycznie zmieniało link na ten nowy bez 'pgo'... w przypadku domen wywoływało się to prostą funkcją:

KodRewriteCond %{HTTP_HOST} ^projektgryok.home.pl [NC]
RewriteRule ^(.*)$ http://www.gryok.net/ [r=301,NC]

Natomiast jak dopisać tam te wszystkie zmienne?

Za rozwiązanie problemu kwiateusz ogromne podziękowania jak i Piotrwusek!
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.