Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] przekierowanie na GET URL
Forum PHP.pl > Forum > Przedszkole
yta
Witam,
Zmagam się z małym problemem.

Mam zbudowaną stronę w oparciu o Template i wszystkie URLe podaję jako:

index.php?page=NazwaStrony.php

I takie URLe działają

Problem jest gdy user wpisze: NazwaStrony.php - w najlepszym razie nie działają wszystkie skrypty ... w innym razie, nie ma możliwości otworzenia takiej strony
chciałem zrobić tak, że po wpisaniu NazwaStrony.php w adresie URL strony przeniesie mnie automatycznie na adres: index.php?page=NazwaStrony.php

ale nie zbyt wiem jak.

w pliku .htaccess dopisałem taką linijkę:

RewriteRule ^([^/]*)\.php$ index.php?page=$1 [L]

i np. w pliku NazwaStrony.php na początku jej wpisuję:

  1. <?php require($_GET['page'].'.php'); ?>


I nic .

Mam tu przy okazji takie pytanie dlaczego linijka:
  1. <?php require($_GET['page'].'.php'); ?>
zbudowana przez include czyli :
  1. <?php include($_GET['page'].'.php'); ?>


Usuwa mi plik z serwera w którym jest umieszczona ? ...

Nikt nie wie ? smile.gif
CuteOne
Ten include(), to chyba powinien się znaleźć w index.php
yta
jak będzie w index.php

To w jaki sposób wpłynie na NazwaStrony.php ?

domena.pl/NazwaStrony.php
jak tu wejdę

przeniesienie mnie na :

domena.pl/index.php?page=NazwaStrony.php

Jedynie da się to zrobić przez METATAG Refresh ..... ale głupi pomysł wklejać tą linijkę z refrehem w stronie bo to powoduje to, że strona się odświeża w nie skończoność co 0s.
CuteOne
Ehhh, chyba nie rozumiesz co robi ta dyrektywa
Kod
RewriteRule ^([^/]*)\.php$ index.php?page=$1 [L]

Dla PHP'a nie ma znaczenia czy wejdziesz przez adres domena.pl/NazwaStrony.php czy przez domena.pl/index.php?page=NazwaStrony.php, bo wcześniej moduł apache'a odpowiednio "przygotuje" dla niego żądanie. Nie musisz robić żadnego przekierowania (bo i po co?), sprawdź w index.php dane z GET'a a sam się o tym przekonasz smile.gif

ps. może zamiast wymyślania koła na nowo, zainteresuj się tematem przyjaznych linków?
ps2. kiedyś była pewna metoda na blokowanie wejścia do pliku z pominięciem index.php

Na początku index.php
  1. define('IN', true);


Na początku NazwaPliku.php
  1. if (!defined('IN')) {
  2. header('Location: http://domena.pl/'); // tej funkcji zapewne szukałeś :)
  3. }
yta
Headera znam, ale w moim przypadku Location: Header był martwy i nie działał - w ogóle nie reagował

  1. header('Location: <a href="http://domena.pl/&#39%3b%29;" target="_blank">http://domena.pl/');</a>


Dałem

header('Location: http://domena.pl/index.php?page=NazwaStrony.php');

Wszedłem na NazwaStrony.php i nie przekierowało mnie na NazwaStrony.php wczytało domyślną stronę - czyli stronę główną ...
viking
Zapewne jeżeli włączysz obsługę błędów będzie błąd headers already sent.
yta
I co mi to daje do rozwiązania problemu ?

I co nikt nie pomoże ? ;P
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.