Thread: custom rewrite

  1. #1
    sarnath's Avatar
    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.
    Code:
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_URI} !=/index.php
    RewriteRule .* /index.php
    In mijn index.php file staat dan hetvolgende:

    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:

    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>
    Hij probeert nu dus ook de css files en bijlagen enz te verwijzen, maar dat moet niet. Hoe kan ik dit oplossen?
    webdeveloper / gamer
    no votes  

  2. #2
    adrianhates's Avatar
    Registered
    23/01/06
    Posts
    2,115
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    23/23
    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  

  3. #3
    sarnath's Avatar
    Registered
    07/11/03
    Location
    Bree
    Posts
    6,239
    iTrader
    158 (99%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by adrianhates View Post
    This quote is hidden because you are ignoring this member. Show
    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?
    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 werkte
    Last edited by sarnath; 15-04-2010 at 13:09.
    webdeveloper / gamer
    no votes  

  4. #4
    adrianhates's Avatar
    Registered
    23/01/06
    Posts
    2,115
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    23/23
    voila problem solved
    no votes  

  5. #5
    sarnath's Avatar
    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 / gamer
    no votes  

  6. #6
    adrianhates's Avatar
    Registered
    23/01/06
    Posts
    2,115
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    23/23
    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>
    De leidende slashes wegdoen bij href
    no votes  

  7. #7
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)
    Je kan ook rewrite conditions gebruiken. Ik gebruik deze voor hetgeen jij wilt doen.

    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]
    Hij zit dan dat style.css bestaat en hij redirect niet naar index.php.
    no votes  

  8. #8
    sarnath's Avatar
    Registered
    07/11/03
    Location
    Bree
    Posts
    6,239
    iTrader
    158 (99%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by Curahee Q View Post
    This quote is hidden because you are ignoring this member. Show
    Je kan ook rewrite conditions gebruiken. Ik gebruik deze voor hetgeen jij wilt doen.

    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]
    Hij zit dan dat style.css bestaat en hij redirect niet naar index.php.
    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 / gamer
    no votes  

  9. #9
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)
    Tja, iedereen pakt het anders aan zeker.

    Mijn structuur ziet er ongeveer zo uit
    Code:
    - httpdocs
       +-- index.php
       +-- includes
       |  +-- home.inc
       |  +-- contact.inc
       |  +-- ...
       |
       +-- style
       |  +-- style.css
       |  +-- images
       |     +-- ...
       |
       +-- class
          +-- class.eenklasse.php
    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.
    no votes  

  10. #10
    sarnath's Avatar
    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 / gamer
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in