![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Przeczytałem dużą część tematów o przepisywaniu linków na forum. Przetestowałem tutorial jednego z użytkowników, zadziałało, super ![]() Ale teraz chciałem zastosować to w swojej stronie i kicha :/ Sprawa wygląda tak: konstrukcja pliku index.php Kod <?PHP include('includes/head.php'); $page=$_GET['id'].'.php'; if (file_exists($page)) include($page); else include('home.php'); include('includes/foot.php'); ?> I teraz, jeśli chcę dostać się do strony z newsami tak wygląda link do strony: Kod <a href="index.php?id=news">News</a> A tak wygląda plik .htaccess wg. jednego z tutoriali na forum: Kod RewriteEngine On RewriteBase /~ttk-style RewriteRule ^News$ index.php?id=news [L] No i nie działa. Nie wiem co mam poradzić, gdyż z zakresu przepisywania linków jestem zielony. Ale chciałbym w końcu nauczyć się to stosować, po prostu muszę ![]() Aha, to wszystko jest uruchomione na komputerze, serwer lokalny WebServ 2.0. Nie testowałem na zwykłym serwerze, chciałem na razie to sprawdzić u siebie. Podejrzewam, że mam problem z linkiem, tzn. wartość href'a w linku jest błędna. A może jakiś inny styl stworzenia strony, inny szablon, który mógłbym zastosować. Pozdrawiam |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 213 Pomógł: 39 Dołączył: 7.04.2008 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
może domyślnie mod-rewrite jet zablokowany, to pierwsza sprawa. po drugie masz "includes" zamiast "include" przy "foot"
edit: przepraszam, jestem nie wyspany. zadnego błędu nie ma. sprawdź dostępność mod rewrite, czy .htaccess jest obsługiwany, czy ma się nazywac .htaccess, czy htaccess.txt, czy może w httpd.conf. sprawdź też czy wielkość liter ma znaczenie "news" zamiast "News" itp edit2: Cytat No i nie działa. w jakim senise nie działa? inkluduje się home? wywala błąd parsowania? cbagov ma rację, a ja juz chyba nic nie będę pisał, tylko się wyśpię Ten post edytował hiszpanespaniol 15.11.2008, 21:06:50 -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%) ![]() ![]() |
Skoro piszesz ^News
to chyba chcesz klikac link <a href="News">News</a> a nie <a href="index.php?id=news">News</a> |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie, teraz jest O.K.
Nie doczytałem tego, żeby zmienić postać linków. A jak będzie można stworzyć regułę przepisywania, jeśli mam takich podstron kilka, np. Kod <ul id="Menu"> <li><a href="index.php?id=news" class="aktualnosci"></a></li> <li><a href="index.php?id=about" class="o-firmie"></a></li> <li><a href="index.php?id=collections" class="kolekcje"></a></li> <li><a href="index.php?id=players" class="zawodnicy"></a></li> <li><a href="index.php?id=coach" class="trenerzy"></a></li> <li><a href="index.php?id=sales" class="gdzie-kupic"></a></li> <li><a href="index.php?id=contact" class="kontakt"></a></li> </ul> Kombinowałem z czymś takim: Kod RewriteRule ^(.*)$ index.php?id=$1 ale to się nie sprawdziło. Chciałbym zrobić regułę, gdyż mam też sporo plików, których adresy są w innym folderze: Kod http://adresstrony.pl/kolekcje/index.php?id=darkcol Dziękuję za szybką pomoc ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 213 Pomógł: 39 Dołączył: 7.04.2008 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
ja mam coś takiego u siebie:
działa bez zarzutu dla linków w postaci: /forum albo /forum/ albo /forumphp12 itd czyli mam <a href="/forum">forum.php.pl</a> a tak naprawde index.php?teksty=forum co do tego, że masz pliki w innym katalogu, to po prostu może pokombinuj z tym samym index'em zamiast wstawiac index wewnątrz katalogu jak w Twoim przykładzie. GETEM mozna wiele zmiennych przesyłać np: <a href="/pliki/konkretny/pobierz">pobierz ten plik</a> -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Twoja rada działa, ale częściowo. Tzn. działa kiedy mam katalog o takiej samej nazwie jak plik.
Mam katalog news i plik news.php I po stworzeniu linka: <a href="news"> Nowości </a> strona wyświetla się poprawnie, bo mam taki katalog. Ale jak zrobiłem do pliku sales.php to nie działało. Po założeniu katalogu - działa :/ Kod RewriteEngine On
RewriteBase /~ttk-style/ RewriteRule ^([a-zA-Z]+)/?$ index.php?id=$1 [L] |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 213 Pomógł: 39 Dołączył: 7.04.2008 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
moja rada działa poprawnie w całości. niepoprawnie działa to, co Ty robisz z tablicą GET otrzymaną w ten sposób. nie napiszę za Ciebie całej obsługi adresu niestety. pokombinuj, pomyśl. im więcej dni (sic) nad tym posiedzisz, tym mniej pacy w przyszłości
-------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 18 Dołączył: 19.04.2008 Ostrzeżenie: (10%) ![]() ![]() |
Jesli chcesz aby dzialalo a'la katalog, bedziesz musial raczej skorzystac z opcji FollowSymLinks jesli dobrze pisze (z glowy), dodatkowo wtedy nalezy sie zajac sciezkami plikow np w CSS, takze jesli nie chcesz sie trzymac np. standardu linku typu TAG, polecam nie http://...../nazwa ale np. http://...../nazwa.html
Natomiast jak chcesz kilka linkow ustawic w mod_rewrite, starczy jak je po prostu wypiszesz w htaccess: RewriteRule ^mapa.html index.php?id=123 [QSA] Mozesz tworzyc oczywiscie linki automatycznie przy edycji (jesli masz jakis modul edycji) i zapisywac w mapie dla mod_rewrite. W googole: sitepoint mod_rewrite np. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 15.11.2008 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziękuję wszystkim za pomoc.
Muszę teraz pokombinować jak stworzyć stronę index.php w inny sposób, żeby tablica GET była poprawna. Pozdrawiam i dziękuję raz jeszcze ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 16.06.2025 - 19:40 |