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ć.
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.
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 (IMG:http://forum.php.pl/style_emoticons/default/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ć.
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 (IMG:http://forum.php.pl/style_emoticons/default/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?
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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) strzali prowadza do wywolan powodowanych przez regułę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

(IMG:http://img2.vpx.pl/up/20090331/petla_by_tosiek.png)

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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 20:01