Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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
 
Start new topic
Odpowiedzi
tosiek
post
Post #2





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

Posty w temacie


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: 27.12.2025 - 07:59