Hakemistoluettelot ja FFuF - Be The H.A.C.R. - Ep - 09

Minulla on saalis .htaccess näin:

RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.*)$ index.php [L] 

Kaikki mitä ei ole, ja URL-osoite kirjoitetaan takaisin hakemistosivulle. Tämä on hieno, mutta haluan, että otsakkeelle lähetetään 404 200: n sijaan. Kuinka tekisin tämän?

Mielestäni ainoa tapa tehdä se on käyttää ErrorDocument direktiivi:

ErrorDocument 404 index.php 

koska kanssa RewriteRule "peität" virheen palvellessasi toista sivua pyynnölle.

Silti sinun on tiedettävä se ErrorDocument 404 ei muuta sivun URL-osoitetta, joten kotisivusi on väärässä URL-osoitteessa.

  • 1 Minun oli käytettävä /index.php sijasta index.php mutta se toimi. Se on järkevämpää nyt. Kiitos
  • @Jakobud Jos se toimi, merkitse kysymys vastaukseksi ...
  • "sinulla on kotisivusi väärällä URL-osoitteella" - mikä on muuten myös kysymyksen koodi tekisi (sisäinen uudelleenkirjoittaminen).

Alkuperäinen uudelleenkirjoitussääntösi toimii. Sinun tarvitsee vain muokata index.php palauttaa 404. Sinun tarvitsee vain lisätä tämä rivi yläosaan

 header('Status: 404 Not Found'); 

Siinä vaiheessa PHP-komentosarjasi on vastuussa virhesivun sisällön kirjoittamisesta. Olet ottanut käyttöön mukautetun 404.

  • Vaikka haluat todennäköisesti tehdä tämän ehdollisesti index.php. (Jonka voit helposti tehdä URL-osoitteen perusteella.)

404 on umpikuja, joten et voi lähettää 404: tä ja ohjaa uudelleen, ellet käytä JS-palaa 404-sivulla, mutta vihaan niitä "sinut ohjataan pian ..." -sivuja.

Ratkaisuni ei onnistu tarkalleen mitä kysyt, mutta voisit tehdä paljon enemmän 404.php tiedosto.

Ratkaisu:

sisään .htaccess:

ErrorDocument 404 /404.php 

sisään 404.php:

<?php // Redirect and send 301 header (a redirect defaults to a 302) header('Location: http://www.example.com/', TRUE, 301); 
  • Etkö ole varma "ratkaisusi" taustasta? 404 näyttää olevan täysin tarpeeton esimerkissäsi. Kuten ilmoitat ensimmäisellä rivilläsi, et voi lähettää 404 ja uudelleenohjaus "- näytät osoittaneen tämän esimerkissäsi?
  • Vaikka palvelin käsittelee ratkaisua 404 404: nä, selaimelle lähetetään 301-otsikko PHP: n seurauksena header() toiminto. Syy käyttää ErrorDocument 404 minun tapauksessani ei ollut kirjoittaa kirjoja 404.php-tiedostoon pyynnön perusteella, mutta joissakin tapauksissa haluan ehkä ohjata uudelleen, ja toisissa tapauksissa haluan näyttää 404-sivun (jolla olisi 404-otsikko ).

työskennellyt sinulle: Charles Robertson | Haluatko yhteyttä?