Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] problem z katalogami przy przyjaznych linkach
adam_pm
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.10.2008

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


Witam.

Postanowiłem zapytać na forum, gdyż w internecie nie potrafiłem znaleźć odpowiedzi na mój problem. Jestem w sumie samoukiem jeśli chodzi o php, tak więc nie znam większości pojęć i ciężko mi cokolwiek znależć. Prosiłbym o napisanie np. o czym mógłbym szukać, aby rozwiązać problem.

Znalazłem jedynie http://forum.php.pl/index.php?showtopic=77618&hl=slash ale nie dało to odpowiedzi na mój problem


A co do samego problemu, to chodzi mi o to, że gdy użyję mod rewrite do przepisania adresu 11,jakis-adres.html >> index.php?adres=11,jakis-adres to jest wszystko ok, ale ja chciałbym dodać do strony możliwość wyboru języka, po czym adres miałby wyglądać np. en/11,jakis-adres.html i przepisywać na index.php?adres=11,jakis-adres&lang=en. Wszystko jest w porządku, przepisuje świetnie, ale w przypadku użycia języka wszystkie odwołania do katalogów szaleją i chcą brać pliki w tym przypadku z folderu en. Mógłbym sprawdzać, czy jest wybrany język i wtedy dodawać do odwołań ../ ale to chyba nie za dobre rozwiązanie, a do tego mało wygodne. Chciałbym także umieć tworzyć adresy typu en/gallery/5-cat.html z pominięciem mojego problemu.

W podanym przeze mnie linku jest rozwiązanie tego poprzez użycie <base href... ale ja chciałbym, aby było to uniwersalne i działało niezależnie od miejsca, na którym się znajduje.

Czy jest na to jakiś sposób? W ostateczności poradzę sobię sprawdzając ile jest takich niby katalogów i dodam tyle ../ ale wolałbym wykonać to jednak w sposób cywilizowany, a sądzę, że są tu ludzie o wiele bardziej zaznajomieni z tematem niż ja i będą w stanie mi pomóc. Wystarczy mi, jeśli podpowiecie, w jakich okolicach miałbym szukać, albo dacie nazwę polecenia, to już postaram się poradzić sam.


Pozdrawiam serdecznie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adam_pm
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 19.10.2008

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


Dzięki za odpowiedzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Kamson >> Skorzystałem z Twoich podpowiedzi, przy czym zamieniłem ostatnią linijkę z htaccess na RewriteRule ^(.*) index.php [L] (przy RewriteRule . /index.php [L] wyświetla "No input file specified.") ale wciąż to samo. Po wpisaniu adresu samej strony jest ok, style i obrazki się ładują, natomiast wpisując en/gallery/5-cat.html obrazki itd. są (chcą być:P) wczytywane z en/gallery/, czyli z tego miejsca, które podajemy przeglądarce, a nie tego, które przekazuje htaccess.

Zmienne odczytują się w obu przypadkach prawidłowo, ale właśnie to wczytywanie plików jest dla mnie priorytetem.

Chciałbym aby wyglądało to mniej więcej tak:

Katalog strony np. strona_internetowa
Katalog styli, grafiki itd - pliki

Wszelkie grafiki i style miałyby ścieżkę pliki/jakiś_plik.* i będąc na głównym katalogu (np. strona_internetowa/oferta.html) wczytywałyby się z "strona_internetowa/pliki" i z tego samego także miejsca wczytywałyby się mając adres np. strona_internetowa/en/oferta.html, a nie tak jak teraz z strona_internetowa/en/pliki/

Dodatkowo, linki na stronie głównej miałyby ścieżkę np. kontakt.html, a w drugim przypadku - en/kontakt.html aby zachować za każdym razem zmienną języka.

Jest tu jednak mały problem, bo nawet jeśli uzyskałbym sytuację, w której te pliki wczytywałyby się z dobrego miejsca to linki zapewne też kierowałyby w to podstawowe miejsce. Rozwiązałem to w ten sposób:

.htaccess
Kod
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
DirectoryIndex index.php
RewriteEngine on
RewriteRule ^(.+)/(.+).html$ index.php?lang=$1&atr=$2 [L]
RewriteRule ^(.+).html$ index.php?atr=$1


A kod php:
Kod
if($_GET[lang]) {$base_url="../";}


Do każdego odwołania do zewnętrznego pliku wpisuję dopisuję wtedy $base_url i wszystko śmiga. Przy dowolnej ilości atrybutów ze slashem na końcu możnaby napisać skrypt zliczający je i wpisujący daną ilość "../" do $base_url.

Teoretycznie wszystko działa w porządku, ale czy jest wykonane poprawnie? Może jakieś inne pomysły ?(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam serdecznie
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: 26.12.2025 - 04:05