Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekierowanie htaccess
Forum PHP.pl > Forum > Serwery WWW
zaajcu
Cześć.
Mam problem z przekierowaniem w htaccess.

Potrzebuje przekierować pliki jpg, png, gif na inny katalog. Chodzi o to żeby zawsze adres odnoszący się do tych plików był przekierowywany na www.mojastrona.pl/img
nieważne jaki jest wpisany np. www.mojastrona.p/admin/grafika/logo.jpg powinno być przekierowane na www.mojastrona.pl/img/logo.jpg

Nie orientuje się w tym temacie próbowałem coś tam podziałać ale niestety się nie udało:/

zrobiłem coś takiego:

  1. RewriteEngine On
  2. rewriterule ^(.*).jpg$ localhost/img/$0


ale powodowało mi to pętle i dostawałem adres http://localhost/img/img/img/img/img/img/....
Sephirus
dodaj [L]

Kod
    RewriteEngine On
    rewriterule ^(.*).jpg$ localhost/img/$0 [L]
zaajcu
niestety ale to nie pomogło dalej dostaje adrest localhost/img/img/img/img.....
erix
Daj RewriteCond, który sprawdza REQUEST_URI, czy masz w URL już nową ścieżkę.
zaajcu
Cytat(erix @ 27.12.2011, 13:16:33 ) *
Daj RewriteCond, który sprawdza REQUEST_URI, czy masz w URL już nową ścieżkę.


a mógłbyś napisać to co trzeba bo w htaccess dopiero zaczynam zabawe
erix
To nie jest dział na gotowce. Dostałeś wskazówki, teraz Twoim zadaniem jest wyguglać i pogłówkować.
grochu78
samego rewriterule nie stosuje się do przekierowań, spróbuj z : RedirectMatch 301 (.*)\.jpg http://nowy.adres.pl/img/$1
erix
A kto tak powiedział?

Jeśli nie masz możliwości wydzielenia public_html w konfiguracji vhosta, to robi się to właśnie przez rewrite.
grochu78
Od przekierowywania są specjalne reguły rozpoznawane przez serwer Apache typu Redirect, RedirectMatch czy ProxyPass. oczywiście jeśli nie ma już wyjścia to się go stosuje ale wyrażenie to jest mało wydajne i wydłuża dziłanie serwera
erix
Daj coś przykładowego, chętnie się dowiem, jak zrobić to w tym mule. tongue.gif
grochu78
Cytat(erix @ 27.12.2011, 14:06:13 ) *
To nie jest dział na gotowce. Dostałeś wskazówki, teraz Twoim zadaniem jest wyguglać i pogłówkować.
to chyba twoje słowa ...
erix
Owszem, ale przeszukałem ongiś Google, gdy przygotowywałem artykuł odnośnie Rewritingu i nie przypominam sobie, aby ukryte przekierowania można było realizować przez mod_redir, więc skoro wysnuwa tezę, niech ją potwierdzi.
zaajcu
Cytat(grochu78 @ 27.12.2011, 15:49:34 ) *
samego rewriterule nie stosuje się do przekierowań, spróbuj z : RedirectMatch 301 (.*)\.jpg http://nowy.adres.pl/img/$1


to niestety ale też nie pomogło

zwróciło mi adres

http://localhost/img//img//img//img//img//...//img//test.jpg

:/

Zrobiłem coś takiego:

RedirectMatch 301 (^venture/img/)[a-zA-Z0-9_-]{1,}.jpg$ http://localhost/venture/img/$0

tylko niestety to nie działa nie wiem jak zanegować pierwszy nawias :/
zaajcu
zrobiłem coś takiego

RedirectMatch 301 (?!venture/img/)[a-zA-Z0-9]{1,}.jpg$ http://localhost/venture/img/$0

działa prawie idealnie localhost/venture/test.jpg -> localhost/venture/img/test.jpg wink.gif
ale localhost/venture/logo/test.jpg -> localhost/venture/img/test.jpg daje niestety ten sam efekt co wyżej


RedirectMatch 301 (?!venture/img/)(.*).jpg$ http://localhost/venture/img/$0

natomiast z tym jest mały problem działało by to super jak by się dało dać pomiędzy nawiasy and

Cytat(erix @ 27.12.2011, 13:16:33 ) *
Daj RewriteCond, który sprawdza REQUEST_URI, czy masz w URL już nową ścieżkę.


zrobiłem tak:

  1. RewriteCond %{REQUEST_URI} !/venture/img
  2. RedirectMatch 301 (.*).jpg$ <a href="http://localhost/venture/img/$0" target="_blank">http://localhost/venture/img/$0</a>


ale niestety robi się pętla :/
erix
Widocznie wyrażenie masz źle skonstruowane. Pokombinuj.
zaajcu
a możesz mi powiedzieć dlaczego:

RewriteCond %{REQUEST_URI} ^/venture/admin/
RedirectMatch 301 ((?!venture/admin/img/)[a-zA-Z0-9]+.jpg$) http://localhost/venture/admin/img/$0

jak url jest:

http://localhost/venture/test.jpg
to działa przekierowanie a nie powinno
erix
A konkretniej?
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.