Om man vill att besökaren ska komma till rooten eller en viss sida oavsett vad som skrivs i adressfältet, hur gör man då? Är det någonting i .htaccess?
Det går sannolikt att på ett enkelt sätt att lösa med htaccess, men tyvärr har jag inte kunskap att hjälpa dig med det.
Men eftersom du ställt frågan i PHP-forumet så kan du lösa det med PHP genom att lägga följande överst i all filer, förutom index-filen:
<?php
if ($_SERVER['PHP_SELF'] != '/index.php') {
header("Location: /");
exit;
}
Fast med denna lösning kan du aldrig visa dina övriga sidor med mindre än att de inkluderas i index.php. Om din avsikt bara var att man inte ska kunna länka sig in längre ner i strukturen utifrån (dvs från andra sidor än dina egna) så får du kolla på referer värdet i stället. Men tänk på att det finns brandväggar (och webbläsare tror jag) som blankar detta innehåll. I så fall kan du kanske lösa det med att sätta sessioner eller cookies på index-sidan och göra redirecten längre ner bara om session/cookie saknas.
Det kan du mycket väl ha rätt i. :) Jag var bara inte lika säker, och beroende på hur mycket filipbh har koll på inom PHP/webbprogrammering så tyckte jag att det kunde vara värt att påpeka.
Jo, jag menade som du skrev koden Matte. Nackdelen är ju bara att jag måste sätta denna kod i alla filer och det är ju några stycken. Därför tänkte jag om man kunde göra det i .htaccess för då borde det gälla alla filer och mappar under rooten. Men jag får nöja mig med detta så länge :)
Tack
aasah skrev:
Det kan du mycket väl ha rätt i. :) Jag var bara inte lika säker, och beroende på hur mycket filipbh har koll på inom PHP/webbprogrammering så tyckte jag att det kunde vara värt att påpeka.
K@llen: Har försökt med den raden men får det inte att fungera. Antar att det ska vara http:// också. Men det gjorde ingen skillnad. La även till / i slutet och har testat med /index.php men inget blir bra... Antingen fungerar det inte alls eller så kommer felmeddelande 403/500 upp.
Det fungerade inte :/ Felmeddelande 500 kommer upp bara. Även när jag bara skriver in domänen. Kanske har något med B-one att göra. De har ju inte alla funktioner påkopplade...
Jo, får göra det. Men det är kanske hundra filer att lägga in den texten på och detta är bara tillfälligt. Sen ska man ju komma till den fil/mapp man skriver in och då blir det jobbigt att ta bort alla igen.
Jo, får göra det. Men det är kanske hundra filer att lägga in den texten på och detta är bara tillfälligt. Sen ska man ju komma till den fil/mapp man skriver in och då blir det jobbigt att ta bort alla igen.
Bättre idé:
Skaffa en fil som heter tex stopp.php med följande innehåll:
<?php
include_once("stopp.php"); //Fast med absolut sökväg
?>
Alternativt, om du har en headerfil av något slag som redan inkluderas högst upp i dessa filer, lägg denna include högst upp i den i stället.
När du sedan vill öppna för filerna kan du ändra i stopp.php ==> vips ändrades det för dina 100 filer på en gång. Och om du bestämmer dig för att, i framtiden någon gång, reglera vad man får se mha av sessioner istället tex så ändrar du bara i stopp.php, och det slår igenom överallt.