| Autor | Zpráva | ||
|---|---|---|---|
| pep10 Profil |
#1 · Zasláno: 25. 12. 2012, 23:48:52
Ahoj,
potřebuji přesměrovat: detail.php?id=1234 detail/1234 Původně jsem měl v htaccess toto: RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^detail/([^/]+)/?$ detail.php?id=$1ale po přechodu z webhostingu na vps toto přesměrování přestalo chodit. Poradí někdo, kde je chyba? Předem děkuji za radu. |
||
| Kajman Profil |
#2 · Zasláno: 25. 12. 2012, 23:53:01
Uvedené pravidlo nepřesměrovává, ale tajně podstrkává
detail/1234 na detail.php?id=1234 Když zadáte detail/1234, tak tam máte chybovou stránku a nefuguje tedy podstrkávání? |
||
| pep10 Profil |
Přesně tak, zobrazí se chybová stránka.
Mám tam ještě tyto dvě pravidla, která fungují. RewriteRule ^kategorie/([^/]+)/?$ category.php?url=$1 RewriteRule ^kategorie/([^/]+)/([^/]+)/ /category.php?url=$1&num=$2 [NC] |
||
| Kajman Profil |
#4 · Zasláno: 26. 12. 2012, 00:48:06
Co je v error logu?
A jaký je tedy kompletní obsah .htaccess? A žádná pravidla přímo v konfiguraci apache nemáte? Existuje adresář detail a je v něm nějaký jiný .htaccess? |
||
| pep10 Profil |
#5 · Zasláno: 26. 12. 2012, 11:52:13
Adresář DETAIL neexistuje stejně tak jako adresář KATEGORIE. Ovšem KATEGORIE funguje, DETAIL už ne.
V detail.php je tato hlavička: <?php
include("./admin/nastaveni.php");
$id = $_GET['id'];
$websql=mysql_query("SELECT * FROM web WHERE id='$id'");
$vypis_web = mysql_fetch_array($websql);
$kategorie = $vypis_web["category"];
$nazov = $vypis_web["nazov"];
$adresa = $vypis_web["adresa"];
$popis = $vypis_web["popis"];
IF($visits==""){
header('Location: ../404.php');
exit;
}
$update_visits = mysql_query("UPDATE web SET visits = visits+1 WHERE id='$id'");
?>Jinak žádné jiné přesměrování nikde není. Vrátí se stránka 404.php. Error log nějak najdu? Konfigurace byla asi úplně čistá po instalaci VPS. Nevyznám se v tom, tak se omlouvám, za hloupé otázky. |
||
| Davex Profil |
#6 · Zasláno: 26. 12. 2012, 12:42:02
pep10:
Vypni si MultiViews.
|
||
|
Časová prodleva: 10 dní
|
|||
| pep10 Profil |
#7 · Zasláno: 5. 1. 2013, 14:28:51
Ikdyž je to vypnuté, tak stejně pořád nic.
|
||
| Davex Profil |
#8 · Zasláno: 5. 1. 2013, 15:02:53
Problém by také mohl být v tom, že je chyba ve skriptu detail.php, kde není definována proměnná
$visits.
|
||
| pep10 Profil |
#9 · Zasláno: 5. 1. 2013, 15:15:31
To tam je, jen jsem to z tý hlavičky vymazal, aby to nebylo tak dlouhý
zde je celá hlavička detail.php <?php
include("./admin/nastaveni.php");
$id = $_GET['id'];
$websql=mysql_query("SELECT * FROM web WHERE id='$id'");
$vypis_web = mysql_fetch_array($websql);
$kategorie = $vypis_web["category"];
$nazov = $vypis_web["nazov"];
$adresa = $vypis_web["adresa"];
$popis = $vypis_web["popis"];
$datum = $vypis_web["datum"];
$datum = date("d.m.Y",strtotime("$datum"));
$visits = $vypis_web["visits"];
$typ = $vypis_web["typ"];
IF($visits==""){
header('Location: ../404.php');
exit;
}
$update_visits = mysql_query("UPDATE web SET visits = visits+1 WHERE id='$id'");
?>Když toto z hlavičky vymažu I IF($visits==""){
header('Location: ../404.php');
exit;Tak se to přesměrovává, ale nevypisuje se z databáze co má, ale přesměrovává. Jinak pod adresou detail.php?id=1234 se zobrazuje to, co se zobrazovat má. |
||
| Davex Profil |
#10 · Zasláno: 5. 1. 2013, 15:20:29
A když změníš začátek adresy
detail/ na něco jiného nebo přejmenuješ skript detail.php na něco jiného a změníš to i v přepisovacím pravidle?
|
||
| pep10 Profil |
#11 · Zasláno: 5. 1. 2013, 15:32:46
Ikdyž to přejmenuji a přepíši, tak to hodí stránku 404.php
|
||
| Davex Profil |
#12 · Zasláno: 5. 1. 2013, 15:50:11
Není náhodou před přepisovacím pravidlem pro detail nějaké obecnější pravidlo, které parametr
id skriptu detail.php nepředává?
|
||
| pep10 Profil |
Celý .htaccess vypadá takto:
ErrorDocument 404 http://www.domena.cz/404.php
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^domena.cz
RewriteRule (.*) http://www.domena.cz/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^kategorie/([^/]+)/?$ category.php?url=$1
RewriteRule ^kategorie/([^/]+)/([^/]+)/ /category.php?url=$1&num=$2 [NC]
RewriteRule ^detail/([^/]+)/?$ detail.php?id=$1Když jsem měl webhosting, tak vše fungovalo, ale jak jsem přešel na VPS, tak mi polovina věcí nefunguje. |
||
| Davex Profil |
#14 · Zasláno: 5. 1. 2013, 17:17:46
Vypadá to, že se skriptu detail.php nepředává parametr, ale pokud fungují pravidla pro kategorie, tak by mělo fungovat i to pro detail. Pravidla tedy vypadají v pořádku. Zkus si zapnout
RewriteLog, kde by mělo být zaznamenáno konkrétní dění při přepisu.
|
||
|
Časová prodleva: 13 let
|
|||
0