Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne]brak możliwości wywołania strony błędu 404
Forum PHP.pl > Forum > Przedszkole
peb
Witam serdecznie i od razu przepraszam za trywialność pytania ale uderzam głową w mur.
Wymyśliłem sobie na pracę do szkoły stronkę, oparłem się o szablon znaleziony w sieci i zasadniczo wszystko gra gdyby nie mały kłopot.
Na początek kod:
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4.  
  5.  
  6. </head>
  7.  
  8. <body>
  9.  
  10.  
  11. <div class="a1">
  12. <div><h2>Przykładowa strona</h2></div>
  13. <div class="menu">
  14. <a href="start">Strona główna</a>
  15. <a href="link1">LINK 1</a>
  16. <a href="link2">LINK 2</a>
  17. <a href="link3">LINK 3</a>
  18. <a href="link4">LINK 4</a>
  19. </div>
  20. <div class="tresc">
  21.  
  22.  
  23. <?php
  24. //** Tutaj jest wstawiana treść z plików zewnętrznych
  25.  
  26. if(empty($_GET['id']) or $_GET['id']=="start"){
  27. include("dane/start.html");
  28. }
  29.  
  30. if($_GET['id']=="link1"){
  31. include("dane/link1.html");
  32. }
  33.  
  34. if($_GET['id']=="link2"){
  35. include("dane/link2.html");
  36. }
  37.  
  38. if($_GET['id']=="link3"){
  39. include("dane/link3.html");
  40. }
  41.  
  42. if($_GET['id']=="link4"){
  43. include("dane/link4.html");
  44. }
  45.  
  46. ?>
  47.  
  48. </div>
  49.  
  50. </div>
  51. <?php
  52. include('dane/footer.html');
  53. ?>
  54.  
  55. </body>
  56. </html>


Teraz plik .htaccess

Kod
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www. [NC]
RewriteRule ^(.*)$ http://www.domena.pl/$1 [L,R=301]

RewriteCond %{REQUEST_URI} ^\/index.php$
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)$ http://domena.pl/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z0-9_-]+) index.php?id=$1 [L]


A teraz do rzeczy


Cokolwiek nie wpiszę do przeglądarki nie mogę uzyskać błędu 404, chodzi o to, że zawsze wyświetla mi menu i pustą stronę ale nigdy błąd a chciałbym aby stworzyć własną stronę błędu i dopisać do .htaccess
Po drugie za nic nie mogę zmusić do przekierowania z adresu "/index.php?id=link1" na "/link1"

To chyba z grubsza tyle, z góry dziękuję za pomoc a przede wszystkim za wyrozumiałość i poświęcony czas na czytanie kłopotów nastalotka:)

Pozdrawiam
skowron-line
2.
Kod
RewriteRule ^([a-z0-9_-]+) index.php?id=$1 [L]
to przekierowuje odwrotnie do tego co chcesz osiągnąć więc odwróć ten proces a uzyskasz zamierzony wynik.
1.
Skoro wszystkie podstrony dołączasz do szablonu który posiada już nagłówek i stopkę to zawsze będziesz go miał.
peb
Cytat(skowron-line @ 3.11.2011, 08:59:56 ) *
Kod
RewriteRule ^([a-z0-9_-]+) index.php?id=$1 [L]
to przekierowuje odwrotnie do tego co chcesz osiągnąć więc odwróć ten proces a uzyskasz zamierzony wynik.

Z tym, że widzisz przy moim zapisie link w kodzie może wyglądać następująco <a href="link1">Link1</a> i w przeglądarce uzyskuje http://www.domena.pl/link1 przy odwróceniu zapisu muszę w kodzie linkować index.php?id=link1 i w przeglądarce mam taki właśnie link a chodzi mi o przyjazny URL:)

Cytat(skowron-line @ 3.11.2011, 08:59:56 ) *
Skoro wszystkie podstrony dołączasz do szablonu który posiada już nagłówek i stopkę to zawsze będziesz go miał.

Co zatem proponujesz żeby mój problem się rozwiązał?
skowron-line
1. Racja mój błąd, i chyba <a href="/link1">Link1</a> takie linki smile.gif
2.
  1. <?php
  2.  
  3. if(isset($_GET['id']))
  4. {
  5. include('naglowek');
  6.  
  7. switch($_GET['id'])
  8. {
  9. case 'link1':
  10. include('dane/link1');
  11. break;
  12. }
  13.  
  14. include('stopka');
  15. }
  16. else
  17. {
  18. include('404.html');
  19. }
  20.  
  21. ?>

coś w tą stronę, można to jeszcze uprościć no ale na to sam już wpadniesz.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.