Direktoriju saraksts un FFuF - Be The H.A.C.R. - Ep - 09
Man ir āķis .htaccess šāda direktīva:
RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.*)$ index.php [L]
Viss, kas nepastāv, un URL tiek pārrakstīts atpakaļ uz rādītāja lapu. Tas ir lieliski, tomēr es vēlos, lai galvenei tiktu nosūtīts 404, nevis 200. Kā es to darītu?
Es domāju, ka vienīgais veids, kā to izdarīt, ir izmantot ErrorDocument
direktīva:
ErrorDocument 404 index.php
jo ar RewriteRule
jūs "maskējat" kļūdu, pieprasījumam apkalpojot citu lapu.
Tomēr jums tas ir jāzina ErrorDocument 404
nemainīs lapas URL, tādējādi jūsu mājas lapa būs nepareizā URL.
- 1 man bija jāizmanto
/index.php
tā vietāindex.php
bet tas nostrādāja. Tagad tam ir lielāka jēga. Paldies - @Jakobud Ja tas izdosies, atzīmējiet jautājumu kā atbildētu ...
- "jums būs jūsu sākumlapa ar nepareizu vietrādi URL" - tas, starp citu, būtu arī tas, ko darītu jautājuma kods (iekšēja pārrakstīšana).
Sākotnējais pārrakstīšanas noteikums darbosies. Jums vienkārši jāmaina index.php
lai atgrieztu 404. Jums vienkārši jāiekļauj šī rinda augšpusē
header('Status: 404 Not Found');
Tajā brīdī PHP skripts būs atbildīgs par kļūdas lapas satura rakstīšanu. Jūs būsiet ieviesis pielāgotu 404.
- Lai gan jūs, iespējams, vēlaties to darīt nosacīti
index.php
. (Ko jūs viegli varētu izdarīt, pamatojoties uz URL.)
404 ir strupceļš, tāpēc jūs nevarat nosūtīt 404 un novirzīt, ja vien jūs neizmantojat JS gabalu 404 lappusē, bet es ienīstu tās lapas, kuras "jūs tiksiet ātri novirzītas ...".
Mans risinājums nedara precīzi ko jūs jautājat, bet jūs varētu darīt daudz vairāk 404.php
failu.
Risinājums:
iekšā .htaccess:
ErrorDocument 404 /404.php
iekšā 404.php
:
<?php // Redirect and send 301 header (a redirect defaults to a 302) header('Location: http://www.example.com/', TRUE, 301);
- Vai neesat pārliecināts par jūsu "risinājuma" pamatojumu? Šķiet, ka 404 jūsu piemērā ir pilnīgi lieks. Kā jūs norādāt savā pirmajā rindiņā "jūs nevarat nosūtīt 404 un novirzīšana "- jūs, šķiet, esat to parādījis savā piemērā?
- Lai gan serveris 404 manā risinājumā apstrādā 404, pārlūkprogrammai PHP rezultātā tiek nosūtīta 301 galvene
header()
funkciju. Iemesls izmantošanaiErrorDocument 404
tā vietā, lai pārrakstītu, manā gadījumā bija darīt lietas 404.php failā, pamatojoties uz pieprasījumu, dažos gadījumos es varētu vēlēties novirzīt, bet citos gadījumos es vēlos parādīt 404 lapu (kurai būtu 404 galvene ).