Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] przekierowanie na GET URL
yta
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 3
Dołączył: 10.04.2010

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


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 ? (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


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 (IMG:style_emoticons/default/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. }


Ten post edytował CuteOne 17.01.2016, 00:08:59
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: 8.10.2025 - 06:42