[Mod_rewrite] exlude afbeelding map

Pagina: 1
Acties:

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 10-02 14:17
Ik probeer iedere url die ik intyp te redirecten naar /rewriteurl.php deze pagina include dan index.php

Dit lukt mij dmv

RewriteRule ^(.*)$ cms/basis/rewriteurl.php

in .htaccess te plaatsen.
Echter nu wilt deze regel ook alle afbeeldingen van mijn website te redirecten.
Ik probeerde dit tegen te gaan door de volgende conditie te schrijven:

RewriteCond %{ REQUEST_URI}!^(.*)afbeeldingen(.*)$

Als ik nu de pagina probeer te laden dan krijg ik nog altijd index.php zonder afbeeldingen te zien.

.htaccess

RewriteEngine on
RewriteCond %{ REQUEST_URI}!^(.*)afbeeldingen(.*)$
RewriteRule ^(.*)$ cms/basis/rewriteurl.php

rewriteurl.php

<?php
$pagina = "startpagina";
include("../../index.php");
?>

Weet er iemand wat ik hier mis doe?

Verwijderd

Je syntax lijkt niet helemaal overeen te komen met de voorbeelden die ik gebruikt heb van deze site. Misschien kan je hier wat mee.

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 19:11

Sebazzz

3dp

Kan je niet beter een Directory directive gebruiken met daarin een paar regels om een 403 bericht te weergeven.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 10-02 14:17
Ik heb nog wat verder dingen geprobeerd.
Als ik surf naar

http://localhost/YokiSoft/afbeeldingen/side.jpg

dan zie ik de afbeelding wel

Neem ik de regel

RewriteCond %{ REQUEST_URI}!^(.*)afbeeldingen(.*)$

weg dan dan wordt ik geredirect.

Toch zie ik geen images als ik in index.php een <img> inlaad.

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 10-02 14:17
Verwijderd schreef op zaterdag 01 maart 2008 @ 14:11:
Je syntax lijkt niet helemaal overeen te komen met de voorbeelden die ik gebruikt heb van deze site. Misschien kan je hier wat mee.
Welk deel lijkt je niet overeen te komen want ik heb deze sheet ook gebruikt

Verwijderd

yoki2007 schreef op zaterdag 01 maart 2008 @ 14:27:
[...]
Welk deel lijkt je niet overeen te komen want ik heb deze sheet ook gebruikt
RewriteCond %{ REQUEST_URI}!^(.*)afbeeldingen(.*)$
Bij nader inzien kan het zijn dat de spatie om de argumenten te scheiden niet nodig is. Daardoor zie ik meteen wel je regexp ^$ dus verder zou de syntax goed moeten zijn.
Ik heb dit vraagstuk ook gehad eigenlijk. Ik schreef (in php :s) een variabele met de basepath (/YokiSoft/) die bij alle afbeeldingen, stylesheets etc word meegegeven. Dan zou je wel je RewriteRule(s) moeten aanpassen, zodat enkele requests (als /cms /blog /blog/$id etc) afgevangen worden, in plaats van alle requests.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 10-02 14:17
Verwijderd schreef op zaterdag 01 maart 2008 @ 14:46:
[...]


[...]


Bij nader inzien kan het zijn dat de spatie om de argumenten te scheiden niet nodig is. Daardoor zie ik meteen wel je regexp ^$ dus verder zou de syntax goed moeten zijn.
Ik heb dit vraagstuk ook gehad eigenlijk. Ik schreef (in php :s) een variabele met de basepath (/YokiSoft/) die bij alle afbeeldingen, stylesheets etc word meegegeven. Dan zou je wel je RewriteRule(s) moeten aanpassen, zodat enkele requests (als /cms /blog /blog/$id etc) afgevangen worden, in plaats van alle requests.
De bedoeling die ik heb is URL redirecten maar op zo een manier dat ik zelf alles kan beheren in de file rewriteurl.php. Hier kan ik dan ook extra pagina urls aanmaken en verwijderen voor dynamische pagina's.

*Ik moet alle requests opvangen omdat er pagina's bij gegenereerd kunnen worden waar ik de url niet van weet, dit omdat ik met een product catalogus te maken heb.

Enkel loop ik vast op deze regel het lijkt wel op die rewriterule alle pagina's tegen houd. Heb jij toen een oplossing gevonden voor jouw probleem?

(*)edit: bijgevoegd

[ Voor 8% gewijzigd door Yoki1985 op 02-03-2008 12:11 ]


  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 10-02 14:17
Niemand die hier een oplossing voor heeft of mij verder op weg kan helpen?

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 10-02 14:17
Ik heb nog verder gezocht maar ik kom er niet meer aan uit
Ik krijg tekst te zien met mijn rewrite rules maar mijn foto's worden niet ingeladen.
Ik vermoed dat dit komt doordat ook deze geredirect worden. Is er iemand die mij kan zeggen hoe ik deze uit de redirect kan halen?

  • Yoki1985
  • Registratie: Augustus 2007
  • Laatst online: 10-02 14:17
Na nog even te zoeken ben ik bij de volgende oplossing gekomen.

.htacces

RewriteEngine on
RewriteRule ^(.*)afbeeldingen(.*) - [L]
RewriteRule ^(.*)$ cms/basis/rewriteurl.php

rewriteurl.php

<?php
$pagina = "";
switch($_SERVER['REQUEST_URI'])
{
case "/startpagina/test":
$pagina = "startpagina";
break;
case "/producten":
$pagina="producten";
$categorieID = "-1";
$productID = "-1";
break;
case "/producten/moederborden/msi":
$pagina="producten";
$categorieID = "1";
$productID = "1";
break;
case "/producten/moederborden/asus":
$pagina="producten";
$categorieID = "1";
$productID = "2";
break;
case "/producten/processoren/amd":
$pagina="producten";
$categorieID = "2";
$productID = "1";
break;
case "/producten/processoren/intel":
$pagina="producten";
$categorieID = "2";
$productID = "2";
break;
default:
$pagina = "startpagina";
break;
}

include("../../index.php");
?>

index.php

<?php
switch ($pagina)
{
case "startpagina":
include("startpagina.php");
break;
case "producten":
include("producten.php");
break;
}
?>


producten.php

<?php
switch ($categorieID)
{
case "1":
echo "<strong>Categorie:</strong> Moederborden<br />";
switch ($productID)
{
case "1":
echo "<strong>Product:</strong> MSI";
break;
case "2":
echo "<strong>Product:</strong> Asus";
break;
}
break;
case "2":
echo "<strong>Categorie:</strong> Processoren<br />";
switch ($productID)
{
case "1":
echo "<strong>Product:</strong> AMD";
break;
case "2":
echo "<strong>Product:</strong> Intel";
break;
}
break;
default:
echo "producten";
break;
}
?>

Als ik nu naar de url http://ys.yokisoft.be/producten surf dan krijg ik daar een echo "producten"; te zien + alle achtergrond afbeeldingen zoals het hoort dus. Als ik echter naar de url http://ys.yokisoft.be/producten/moederborden/msi dan krijg ik wel de juiste echo's te zien maar ik zie geen achter grond afbeeldingen meer.

Zodra ik meer dan 1 slash achter mijn domein zet dan verdwijnen deze. Iemand hier een oplossing voor?

*edit*: Ik heb een "oplossing" gevonden, als ik naar alle afbeeldingen verwijs dmv de volledige url (http://ys.yokisoft.be/afbeeldingen/image.jpg) dan werkt het wel. maar is er ook een betere, mooiere oplossing?

[ Voor 4% gewijzigd door Yoki1985 op 09-03-2008 09:53 ]


Verwijderd

Als je deze code eerst plaats en dan die voor de rest van de urls:
code:
1
RewriteRule (.*)\.(jpg|png|gif|etc)$ /index.php [L]

code:
1
RewriteRule ^.*\.jpg$ /index.php [L]

code:
1
RewriteRule ^.*\.jpg$ /index.php?var=$1 [L]


Ik heb hetzelfde soort probleem, echter wil ik bijvoorbeeld een domein.nl/Mapnaam/ uitsluiten van de RewriteRules.
Ik had wel oplossing om te kijken of de map bestaat, maar dat geeft teveel overhead. Ik zoek nog een oplossing om dus vooraf bepaalde mappen/bestanden uit te sluiten van het regelement van de RewriteRules.

Mvg

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 17:27

orf

Je kunt ook een .htaccess bestand in de map zetten die je wilt excluden:

code:
1
RewriteEngine off


offtopic:
rewriteurl.php ziet er niet bepaald dynamisch uit. Waarom werk je niet met keys in je database zodat je de juiste rubrieken / subrubrieken direct uit de url haalt? Nu moet je voor elke nieuwe rubriek het PHP script aanpassen.
Pagina: 1