Redirect na index.php

Zanima me katera varijanta naj bi bila boljša, da redirectaš na index.php s pomočjo htaccessa ali kar s pomočjo.php fajla?
Ker imam majhen problem kako bi naredil s htaccess 404 error, ker mi vedno redirecta na index.php. Tudi če dam na začetek dajla.

Hvala in lp

7 odgovorov

Koda za 404 je v htaccess preprosta:

ErrorDocument 404 /napake/404.html

če pa hočeš imeti index.php namesto npr index.html uporabi spodaj:

Koda da ti index.php prvo prebere in nato index.html

DirectoryIndex index.php index.html

Več:
http://www.htpasswdgenerator.com/apache/htaccess.html#15

če hočeš imeti index.php namesto npr index.html uporabi htaccess:

Koda da ti index.php prvo prebere in nato index.html

DirectoryIndex index.php index.html

Več:
http://www.htpasswdgenerator.com/apache/htaccess.html#15

Ja, to kodo poznam, samo jaz imam tako:

ErrorDocument 404 /error.php

AddDefaultCharset UTF-8
RewriteEngine on

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^verzi.com
RewriteRule (.*) http://www.verzi.com/$1 [R=301,L]
</IfModule>

RewriteBase /
RewriteCond %{REQUESTFILENAME} !-d
RewriteCond %{REQUEST
FILENAME} !-s
RewriteRule ^(.*)$ index.php

Pa ne dela...

Ce vse rewritas v index.php, potem nekako do 404 sploh ne pride, kajne? Zadevo bos moral resiti tako, da ugotovis znotraj index.php, ce naj bi dokument obstajal ali ne, in prikazal ali vsebino, ali pa 404 dokument.

Aha, tako. Hvala Vini. Kaj pa kakšni drugi načini?

Jah tko da če ti baza vrne da je poizvedba mysqlnumrows = 0, pol fizično redirectaš s header("Location: 404.html"); ... druge varjante skor nimaš pri takem rewrite-ju.

Ne, sej sm mislu če je še kešna varijanta z drugačnmu rewritom.
Samo da je isti učinek...

Preveri v index.php če mysqlnumrows = 0 kot pravi blackbird in potem vrni 404 header

header('HTTP/1.1 404 Not Found');
$smarty->display('page_not_found.tpl');
exit;