Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> przekierowanie pliku na adres
tosiek
post
Post #1





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

Ostrzeżenie: (0%)
-----


Witam. Mam problem z przekierowaniem np.:
*adres.pl/info.htm
oraz
*adres.pl/info

na adres.pl/info/

Mam regułę która przepisuje adres:
Kod
RewriteRule ^([a-z0-9_]*)/?$ ./$1\.htm [L,NC]


Ale nie wiem jak przekierować z tamtych na ten przepisywany ze slashem na końcu.


Przy takim się zapętla:
Kod
RewriteCond %{REQUEST_URI} ^/[^?]+\.htm(\?.*)?$
RewriteRule ^(.*)$ http://adres.pl/info/ [R,L,NC]


przy podobnych do tego też się zapętla lub nie działa:
Kod
RewriteRule ^([a-z0-9_]*).htm$ http://adres.pl.pl/$1/[R,L,NC]


to też:
Kod
RewriteRule ^([a-z0-9_]*)\.htm$ http://adres.pl.pl/$1/ [R,L,NC]


Obojętnie czy dam przekierowanie przed czy po przepisaniu i tak nie działa.

Ten post edytował tosiek 29.03.2009, 11:01:17


--------------------
Go to the top of the page
+Quote Post
griken
post
Post #2





Grupa: Zarejestrowani
Postów: 19
Pomógł: 1
Dołączył: 27.08.2007
Skąd: Londyn

Ostrzeżenie: (0%)
-----


spróbuj tak:

Kod
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.twoja-domena.pl$1/ [L,R=301]
Go to the top of the page
+Quote Post
tosiek
post
Post #3





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

Ostrzeżenie: (0%)
-----


Niestety adres wszystkie wyglądają tak:

adres.pl/info.htm/


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Kod
RewriteBase /
RewriteRule ([a-z]+)\.htm /$1/ [L]

RewriteCond %{REQUEST_URI} (.*?)/$
RewriteRule ([a-z]+)$ /$1/ [L]


Pisane z palca, może nie działać.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tosiek
post
Post #5





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

Ostrzeżenie: (0%)
-----


Niestety te wyżej nawet po przeróbkach się zapętlają albo nie działają.


Na razie mam takie
  1. <?php
  2. RewriteRule ^$ <a href=&#092;"http://integratus.tosiek.pl/informacje/\" target=\"_blank\">http://integratus.tosiek.pl/informacje/</a> [R=301,NC,L]
  3. RewriteRule ^([a-z_0-9]+)$ <a href=&#092;"http://integratus.tosiek.pl/$1/\" target=\"_blank\">http://integratus.tosiek.pl/$1/</a> [R=301,NC,L]
  4. RewriteRule ^([a-z_0-9]+)/$ ./$1.htm [L,NC]
  5. ?>




I działa przepisywanie ze slashem i bez na końcu, jesli nie ma slasha na końcu przekierowuje na ze slashem /
np.
http://integratus.tosiek.pl/informacje
na
http://integratus.tosiek.pl/informacje/

Ale już plików z rozszerzeniem .htm nie chce. nie działa ani (.htm) ani [.htm] ani \.htm sam już nie mam pomysłu może w złej regule tego używam, ale nawet próbouję na sztywno dla jednego pliku to i tak nie działa.


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie przekierowywuj na ścieżkę bezwzględną (z http), bo to nie zadziała i na pewno będzie się zapętlać. Musi być ścieżka relatywna do serwera.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tosiek
post
Post #7





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

Ostrzeżenie: (0%)
-----


w tym problem że jesli nie przekieruję na bezwzględny adres z http to nie zadziała smile.gif


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ma być względem "/". Żaden URL nie ma prawa się pojawić.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tosiek
post
Post #9





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

Ostrzeżenie: (0%)
-----


sorki. podąłem w php powinno wyglądać tak:
Kod
RewriteRule ^$ http://integratus.tosiek.pl/informacje/ [R=301,NC,L]
RewriteRule ^([a-z_0-9]+)$ http://integratus.tosiek.pl/$1/ [R=301,NC,L]
RewriteRule ^([a-z_0-9]+)/$ ./$1\.htm [L,NC]


dziala po mzianie na:
Kod
RewriteRule ^$ ./informacje/ [R=301,NC,L]
RewriteRule ^([a-z_0-9]+)$ ./$1/ [R=301,NC,L]
RewriteRule ^([a-z_0-9]+)/$ ./$1\.htm [L,NC]


ale przy dodnaiu np. na początek:
RewriteRule ^.*\.htm$ ./informacje/ [R=301,NC,L]
lub
RewriteRule ^informacje\.htm$ ./informacje/ [R=301,NC,L]
lub
RewriteRule informacje\.htm$ ./informacje/ [R=301,NC,L]
Nie działa sad.gif


--------------------
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Yyyy, ta kropka przed /, to zamierzone działanie?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
tosiek
post
Post #11





Grupa: Zarejestrowani
Postów: 142
Pomógł: 0
Dołączył: 7.07.2008

Ostrzeżenie: (0%)
-----


Huuh chbya jak dla mnie odkryłem swoja amerykę, i chbya upewniłem się na 100% że zawsze by się zapętlało smile.gif

bo po przepisaniu:
RewriteRule ^([a-z_0-9]+)/$ $1\.htm [L,NC]

cały czas ten adres np. /informacje/ korzysta z pliku informacje.htm

więc chcąc przekierować plik informacje .htm:
RewriteRule ^([a-z_0-9]+)\.htm$ /$1/ [R=301,NC,L]

Będziemy przekierowywali zawsze /informacje/ na /informacje/ na /informacje/,

przekierowanie działa jak trzeba ale robi się pętla bo /informacje/ to to samo co informacje.htm więc za pomocą tego przekierowujemy obydwa:
RewriteRule ^([a-z_0-9]+)\.htm$ /$1/ [R=301,NC,L]




Więc trzeba zaprząc do roboty php zeby zmienić adres w przeglądarce np taki skrypt:
  1. <?php
  2. $adress = $_SERVER["REQUEST_URI"];
  3. if (substr($adress, -4) == ".htm") {
  4.        header("HTTP/1.1 301 Moved Permanently");
  5.        header("location:http://integratus.tosiek.pl/" . substr($adress, 1, -4) . "/");
  6.        exit;
  7. }
  8. ?>


ten akurat jest ustawiony na rozszerzenie .htm i zmienia adres z nazwa.htm na /nazwa/

W sumie za pomoca htaccess z regułami np.:

RewriteCond %{request_uri} !(.*)/&

bądź podobnymi warunkami chyba by działały ale ja nie znalazłem.

Nie zadziała tak normalnie bo jedno wywoła zawsze drugie

Obrazek tongue.gif strzali prowadza do wywolan powodowanych przez regułę smile.gif



Ten post edytował tosiek 31.03.2009, 16:14:47


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 02:48