Thread: custom rewrite
-
15-04-2010, 11:55 #1Member
- Registered
- 07/11/03
- Location
- Bree
- Posts
- 6,239
- iTrader
- 158 (99%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
custom rewrite
Ik heb totnutoe altijd mod rewrite gebruikt via .htaccess in apache met rewriterules.
Nu ben ik echter een website aan het maken via een eigen rewrite.
Probleem is nu dat mijn css files, images enz niet meer werken:
In mijn .htaccess verwijs ik altijd door naar index.php aangezien deze file alles afhandelt.
In mijn index.php file staat dan hetvolgende:Code:RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !=/index.php RewriteRule .* /index.php
Code:<?php include("header.php"); ?> <!-- controleren welke pagina werd doorgegeven --> <?php $urlParts = explode( '/', trim($_SERVER['REQUEST_URI'], '/' ) ); $page = ""; if(empty($urlParts[0])){ $page = "index.php"; }else{ $page = $urlParts[0] . ".php"; } $page_exists = 1; if(!(file_exists($page))){ include("errordocument_404.php"); $page_exists = 0; } if($page_exists == 1){ if(!($page === "index.php")){ echo '<div class="pagecontent">'; include($page); echo '</div>'; }else{ echo "frontpage"; } } ?> <!-- einde controle --> <?php include("footer.php"); ?>
de header met de verwijzing naar de css en favicon:
Hij probeert nu dus ook de css files en bijlagen enz te verwijzen, maar dat moet niet. Hoe kan ik dit oplossen?Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <base href="http://localhost"> <title>Titel van de website</title> <meta name="description" content="omschrijving" /> <meta name="keywords" content="woorden" /> <meta name="author" content="auteur" /> <link rel="StyleSheet" href="/css/stijl.css" type="text/css" title="layout" /> <link rel = "shortcut icon" href="/bijlagen/opmaak/favicon.ico" /> </head> <body> <div class="header"> header </div>
webdeveloper / gamerno votes
-
-
15-04-2010, 12:24 #2
Gebruik een base tag
In uw header :
<base href="http://uwbasisadres.be/" />
edit: ik zie da ge het al gebruikt. Alleen mist ge een slash achteraan + ge moet de map van uw project er nog achter zetten.
Of werkt ge in de root van uw localhost?no votes
-
15-04-2010, 13:00 #3Member
- Registered
- 07/11/03
- Location
- Bree
- Posts
- 6,239
- iTrader
- 158 (99%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
ik werk met deze test nu toevallig in mijn root ja.
localhost wil m in ieder geval nie doen bij base, maar als ik daar een bestaande website zet met een stijl dan wordt die wel gevonden
Mss in een submap plaatsen? alhoewel dit ook zou moeten werken..
EDIT: heb het nu als apart projectje gedaan, dus in een aparte map en nu werkt het wel
Zo werk ik in ieder geval altijd dus het is wel opgelost dan, alleen vreemd dat het in de root zelf niet werkteLast edited by sarnath; 15-04-2010 at 13:09.
webdeveloper / gamerno votes
-
15-04-2010, 13:18 #4
voila problem solved
no votes
-
15-04-2010, 13:59 #5Member
- Registered
- 07/11/03
- Location
- Bree
- Posts
- 6,239
- iTrader
- 158 (99%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
hmz, ik weet niet hoe het kwam, maar mijn opmaak verscheen en nu krijg ik deze niet meer tevoorschijn
.
Nog steeds hetzelfde probleem dus.
Heb als document root /var/www/selfrewrite
in mijn header;php staat nu:
Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <base href="http://localhost/selfrewrite/"> <title>Titel van de website</title> <meta name="description" content="omschrijving" /> <meta name="keywords" content="woorden" /> <meta name="author" content="dotred.be" /> <link rel="StyleSheet" href="/css/stijl.css" type="text/css" title="layout" /> <link rel = "shortcut icon" href="/bijlagen/opmaak/favicon.ico" /> </head> <body> <div class="header"> header </div>
webdeveloper / gamerno votes
-
15-04-2010, 16:27 #6De leidende slashes wegdoen bij hrefCode:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <base href="http://localhost/selfrewrite/"> <title>Titel van de website</title> <meta name="description" content="omschrijving" /> <meta name="keywords" content="woorden" /> <meta name="author" content="dotred.be" /> <link rel="StyleSheet" href="css/stijl.css" type="text/css" title="layout" /> <link rel = "shortcut icon" href="bijlagen/opmaak/favicon.ico" /> </head>
no votes
-
15-04-2010, 18:36 #7
Je kan ook rewrite conditions gebruiken. Ik gebruik deze voor hetgeen jij wilt doen.
Hij zit dan dat style.css bestaat en hij redirect niet naar index.php.Code:RewriteEngine On # Controleer of het geen bestaande directory is RewriteCond %{REQUEST_FILENAME} !-d # Controleer of het geen bestaand bestand is RewriteCond %{REQUEST_FILENAME} !-f # Rewrite vervolgens alles naar index.php RewriteRule ^ index.php [L]no votes
-
15-04-2010, 19:33 #8Member
- Registered
- 07/11/03
- Location
- Bree
- Posts
- 6,239
- iTrader
- 158 (99%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
inderdaad ik heb het nu op exact dezelfde manier opgelost.
Ik had dan wel het probleem dat als ik bijvoorbeeld http://www.website.be/contact/ deed deze direct werd gevonden aangezien dit ook een file was.
Ik heb dit opgelost door deze paginas in een map "pages" te zetten.
Is t zoiets dat jij ook gebruikt? dan weet ik dat ik goed zit
@adrianhates, zal t eens proberen, dan weet ik toch nog de oorzaak waarom t zo niet werkte
webdeveloper / gamerno votes
-
15-04-2010, 19:52 #9
Tja, iedereen pakt het anders aan zeker.
Mijn structuur ziet er ongeveer zo uit
Ik heb dus enkel index.php rechtstreeks in mijn httpdocs staan, voor de rest allemaal mappen. Ook zijn mijn links niet van het type http://www.website.be/contact/ maar http://www.website.be/contact.html of http://www.website.be/contact.xhtml of met 1 of ander zelfgekozen extensie.Code:- httpdocs +-- index.php +-- includes | +-- home.inc | +-- contact.inc | +-- ... | +-- style | +-- style.css | +-- images | +-- ... | +-- class +-- class.eenklasse.phpno votes
-
15-04-2010, 21:53 #10Member
- Registered
- 07/11/03
- Location
- Bree
- Posts
- 6,239
- iTrader
- 158 (99%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
k thx, is min of meer hoe ik werk ook.
bedankt allen voor de hulp in ieder geval.webdeveloper / gamerno votes

