Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]przepisywanie adresów, wyjątki
Cromwell
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 1.09.2009

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


Na stronie większość linków wygląda tak:
index.php?link=dane
Część natomiast tak:
lista.php
Jest też kilka katalogów, np.
forum/

Chcę wykorzystać RewriteRule, aby ładnie przepisywać adresy. Wykorzystałem następującą formułkę w pliki .htaccess:
  1. RewriteEngine On
  2. RewriteRule ^([a-zA-Z-_0-9]+)/?$ index.php?link=$1


Co do adresów z index.php?link= przepisuje świetnie, zamiast strona/index.php?link=dane mam strona/dane.
Plików z rozszerzeniem .php nie rusza, to oczywiste.
Jednak jest problem z katalogami.
Np. po podaniu strona/forum, traktuje wywala mi pustą stronę, bo skrypt traktuje to jako index.php?link=forum.

Ponieważ nie mogę przewidzieć jakie zmienne będą w ?link=zmienna, chciałem użyć czegoś takiego jak wyjątki, jednak nic nie udało mi się znaleźć.

Mógłby mi ktoś pomóc?
Najlepiej by było, gdyby wszystkie adresy z strona/index.php?link=dane przepisywał na strona/dane, takie jak strona/lista.php zamieniał na strona/lista, a katalogi zostawiał bez zamieniania.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
WebCM
post
Post #2





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


  1. RewriteEngine On
  2. RewriteCond %{REQUEST_FILENAME} !-f
  3. RewriteCond %{REQUEST_FILENAME} !-d
  4. RewriteRule ^([a-zA-Z-_0-9]+)/?$ index.php?link=$1 [L,QSA]


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
Cromwell
post
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 1.09.2009

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


Częściowo działa.

Linki strona/index.php?link=dane zamienia na strona/dane (ale jeśli się poda adres w przeglądarce strona/dane/, wtedy wyświetli całość, ale bez obrazków i css..).
Wszystkie katalogi działają poprawnia, czyli strona/forum przenosi do katalogu forum.

Zależy mi jeszcze na tym, aby po podaniu strona/dane/ traktował to tak samo jak strona/dane i nie było problemu z wyświetlaniem..

I jeszcze pytanie - jak powinna wyglądać regułka, która przepisze mi adresy z .php na te bez? czyli np. strona/banery.php na strona/banery (uwzględniając oczywiście to przepisywanie z index.php?link=)
Go to the top of the page
+Quote Post
WebCM
post
Post #4





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

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


Dodaj wewnątrz znacznika <head> taki kod:
  1. <base href="http://pelny.adres.strony/z/katalogiem/" />

Ewentualnie podawaj wszędzie ścieżki bezwzględne:

/sciezka/strony/plik.css

Jeżeli pliki są w głównym katalogu, wtedy tylko: /plik.css

Natomiast linki w kodzie HTML musisz sam pozmieniać. Oczywiście da się to uczynić za pomocą buforowania wyjścia, ale nigdy nie ma pewności, że skrypt czegoś nie przeoczy.

Ten post edytował WebCM 27.02.2010, 12:12:21


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
Cromwell
post
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 0
Dołączył: 1.09.2009

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


Ok, to z tym sobie już poradzę.

Zostało tylko przepisywanie plików z lista.php na lista. Pozornie jest to proste, ale jeśli uwzględni się przepisywanie wszystkiego na strona/dane, wtedy już tak proste nie jest..
To nie musi być z wykorzystaniem instrukcji warunkowych, każdy taki link.php mogę przypisywać oddzielnie..
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: 19.08.2025 - 13:22