Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Przekierowanie na podstrone
Forum PHP.pl > Forum > Przedszkole
jerry1984
Witam

Mam problemy z przekierowaniem z http://localhost/index.php na podstronę http://localhost/index.php?id=main .

Używałem wielu kombinacji:

.htaccess
Kod
Redirect permanent http://localhost/index.php  http://localhost/index.php?id=main


meta
Kod
<META HTTP-EQUIV=Refresh CONTENT=?0; URL=http://localhost/index.php?id=main?>

działa lecz mam nieskończoną pętle odświeżania strony.

php
Kod
<?
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://localhost/index.php?id=main");
header("Connection: close");
?>


Kurcze już mnie się pomysły kończą i odwiedzane strony.
Proszę o jakieś nakierowanie lub podpowiedz.

Z góry dziękuje
kokers
a czemu chcesz przekierowac? rozumiem, że chcesz przekierować żeby było to id=main. Nie lepiej zrobić:

  1. if(!isset($_GET['id'])){
  2. $id='main';
  3. }else{
  4. $id = $_GET['id'];
  5. }


?
matino
RewriteEngine On
RewriteRule ^/index.php$ index.php?id=main [R=301,L]
redirect 301 /index.php http://localhost/index.php?id=main
jerry1984
Cytat(kokers @ 15.05.2011, 14:24:56 ) *
a czemu chcesz przekierowac? rozumiem, że chcesz przekierować żeby było to id=main. Nie lepiej zrobić:

  1. if(!isset($_GET['id'])){
  2. $id='main';
  3. }else{
  4. $id = $_GET['id'];
  5. }


?


już wcześniej tak miałem i było by fajnie, lecz w niektórych podstronach wklejała mi się strona "main.php".
Obecnie używam
  1. if($_GET['id'] == 'main' ) {
  2. include('user/main.php');
  3. }


bo jak wklepuję http://localhost/ mam pustą stronkę dlatego potrzebuje redirect do http://localhost/index.php?id=main gdzie jest powitalna strona.

Cytat
RewriteEngine On
RewriteRule ^/index.php$ index.php?id=main [R=301,L]
redirect 301 /index.php http://localhost/index.php?id=main


Jak zwykle .htacces wywala błąd "Błąd serwera"
melkorm
W tym IF'ie daj:
  1. trim($_SERVER['REQUEST_URI'],'/') == 'index.php'
jerry1984
Cytat(melkorm @ 15.05.2011, 15:18:20 ) *
W tym IF'ie daj:
  1. trim($_SERVER['REQUEST_URI'],'/') == 'index.php'


A do którego mam dodać co podał @kokers, czy do tego co ja używam ?

Jeśli do mojego to oto CI chodzi :

  1. if($_GET['id'] == 'main' )
  2. trim($_SERVER['REQUEST_URI'],'/') == 'index.php'{
  3. include('user/main.php');
  4. }


?
melkorm
  1. if($_GET['id'] == 'main' )
  2. trim($_SERVER['REQUEST_URI'],'/') == 'index.php'{
  3. include('user/main.php');
  4. }

Przecież to nawet nie jest poprawne ... .


  1. if( $_GET['id'] == 'main' || trim($_SERVER['REQUEST_URI'],'/') == 'index.php')
  2. {
  3. include('user/main.php');
  4. }
jerry1984
Cytat(melkorm @ 15.05.2011, 15:40:24 ) *
  1. if( $_GET['id'] == 'main' || trim($_SERVER['REQUEST_URI'],'/') == 'index.php')
  2. {
  3. include('user/main.php');
  4. }


Fajnie, tylko działa identycznie jak wcześniejsza moja forma, nadal brak przekierowania do lokalizacji (index.php?id=main) nawet po paru modyfikacji.

Kurcze nie wiedziałem, że będą aż takie duże problemy sadsmiley02.gif
melkorm
to zrób z rewritem ...
Cytat
RewriteEngine On
RewriteRule index.php$ /index.php?id=main [NC,L]
jerry1984
Również nie działa, a robię tak:

Kod
RewriteEngine On
RewriteRule http://localhost/index.php$ /http://localhost/index.php?id=main [NC,L]


wiec jak widzisz, oporny jest sciana.gif już 3h mija, a ja siedzę z tym durnym problemem.
melkorm
bez pełnych adresów .... sprawdzałeś to co wkleiłem?

P.S. w adresie będzie widoczne tylko index.php ale w GET dostanie id=main.
jerry1984
Cytat(melkorm @ 15.05.2011, 16:45:13 ) *
bez pełnych adresów .... sprawdzałeś to co wkleiłem?

P.S. w adresie będzie widoczne tylko index.php ale w GET dostanie id=main.


tak sprawdzałem i wywala
Kod
The requested URL /index.php was not found on this server.


melkorm
to daj ./index.php
jerry1984
Cytat(melkorm @ 15.05.2011, 17:30:15 ) *
to daj ./index.php


już lepiej, strona się wczytuje bez błędów, lecz bez przekierowania.
Próbowałem też dać tak :

Kod
RewriteEngine On
RewriteRule ./index.php$ ./index.php?id=main [NC,L]


i też nic.
melkorm
to też Tobie mówię że to NIE jest przekierowanie tylko przepisanie adresu czyli: widzisz index.php a PHP widzi index.php?id=main .

Jeżeli chcesz przekierowanie to daj:
Kod
RewriteRule index.php$ ./index.php?id=main [R=301,NC,L]

Atomic_Cookie`
  1. if (!isset($_GET['id'])) header('location: ?id=main');
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.