mod_rewrite .htaccess

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ervaren PHP Developer

Functieomschrijving PHP Developer met brede ervaring gezocht! Ben jij een Full Stack PHP Developer met brede ervaring die toe is aan een volgende stap? Lees dan snel verder! Voor onze eindklant in de regio Nunspeet zijn wij op zoek naar een ervaren PHP Developer die het IT Team van deze organisatie gaat versterken. Wij zoeken een enthousiaste en breed georiënteerde IT-er die er voor gaat zorgen dat deze innovatieve organisatie de volgende stap gaat maken. Om deze functie goed uit te kunnen voeren moet je communicatief goed zijn en in staat zijn om zelfstandig problemen op te lossen. Daarnaast bestaat

Bekijk vacature »

Java developer

Als Java Developer bij Sogeti ben je onderdeel van onze toonaangevende community die bestaat uit ruim 100 gepassioneerde professionals. In teamverband lever je mooie prestaties. Daarmee draag je aan bij de meerwaarde die wij leveren aan onze klanten. Geen werkdag is hetzelfde, je bent voortdurend bezig met het oplossen van allerlei complexe vraagstukken binnen bedrijfskritische systemen. Een voorbeeld hiervan is een cliënt-volgsysteem bij Reclassering Nederland. Andere klanten waar wij onder andere voor werken: KPN, Philips, Nationale-Nederlanden, Kamer van Koophandel, ABN AMRO, Bovemij, Arval en de Politie. Werken bij Sogeti Nieuwe ontwikkelingen volgen we op de voet en delen we binnen de

Bekijk vacature »

Consultant Low Code Developer

Functie omschrijving Heb jij verstand van datamodellering, NO CODE Platformen en kun jij het aan om projecten te leiden? Ben jij toe aan een nieuwe uitdaging en ben jij HBO afgestudeerd in de richting van IT? Voor een mooie opdrachtgever in omgeving Delft zijn wij op zoek naar een No Code developer die zich bezig gaat houden met het optimaliseren van bedrijfsprocessen bij klanten. Onderdelen functie Je gaat geen code kloppen maar bedenken hoe applicaties eruit moet komen te zien. Je gaat werken met een non code platform, je kunt denken aan Mendix of Betty Blocks. Je bent verantwoordelijk voor

Bekijk vacature »

Back end developer Digital Agency

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

SQL Database ontwikkelaar

Functie omschrijving Wil jij meewerken aan het creëren van slimme software om magazijnen als een geoliede machine te laten lopen? Wij zoeken een zorgvuldig persoon, iemand die niet snel de hand omdraait voor complexe algoritmes. Denk jij dat jij de SQL ontwikkelaar bent die wij zoeken? Lees snel verder en wie weet zitten we binnenkort samen aan tafel! Jouw werkzaamheden zullen er als volgt uitzien: Je houdt je bezig met het ontwerpen en ontwikkelen van MS SQL server databases, dit doe je met T-SQL als programmeer laag. Je gaat aan high-end software oplossingen werken, dit doe je voor de optimalisatie

Bekijk vacature »

Software developer

Functie Momenteel zijn ze op zoek naar een Software developer die, veelal fullstack, mee gaat werken aan de ontwikkeling van de producten en zo helpt aan de uitvoering van hun ontwikkelprojecten. Je komt te werken binnen hun development team bestaande uit 6 ontwikkelaars. Ze staan zowel open voor meer junior als medior/senior developers. Je kunt snel veel verantwoordelijkheid krijgen en doorgroeien binnen het bedrijf. Bovendien ben je betrokken bij het bepalen van de product roadmap en de inbreng van (nieuwe) technologieën. De applicaties waaraan je werk worden gebruikt op onderwijsinstellingen door heel Nederland. De tech-stack bestaat voornamelijk uit Laravel (PHP),

Bekijk vacature »

Full Stack .NET Developer

Dit ga je doen Als developer nieuwe gave features ontwikkelen; Werken met technieken als C#, Angular 12 en Javascript,; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een team van 7 professionals ben je als Full Stack .NET Developer verantwoordelijk voor het ontwikkelen van applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je hierbij beheerst is C#. Wil je van meerwaarde

Bekijk vacature »

.NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

Bekijk vacature »

Java Front-end Developer

Dit ga je doen Ontwikkelen van nieuwe functionaliteiten in Java met tools als Springboot, MS SQL Server (T-SQL) en JavaScript; Het onderhouden van de (web-)applicaties binnen een complexe omgeving; Werken aan de migratie van een monolithisch systeem naar een architectuur gebaseerd op Kubernetes; Code reviews met collega's en actieve kennisuitdelingsessies voeren; Het uitvoeren van unit- en systeemtests Experimenteren met nieuwe tools en technieken. Hier ga je werken Binnen deze organisatie kom je te werken op de afdeling die gegevens verzamelt vanuit het hele land. Denk hierbij aan vertrouwelijke persoonsgegevens. Het team verwerkt al deze data met als doel het waarborgen

Bekijk vacature »

.NET Developer C# VB

Samengevat: Deze werkgever is actief in software voor het matchen van vraag en aanbod van gebruikte auto-onderdelen. Ben jij een .NET Developer? Heb je ervaring met het ontwikkelen (REST) en integreren van webservices? Vaste baan: C# .NET Developer C# VB HBO €2.600 - €6.200 Wij ontwikkelen software om vraag en aanbod van onderdelen van personenauto's bij elkaar te brengen. Deze werkgever is een veelzijdige organisatie. Je werkt voor de eigen IT organisatie. Zij werken met moderne technologie en staan open voor innovatie. De branche van dit bedrijf is Automotive. Functie: Voor de vacature als .NET Developer Dordrecht HBO ga je

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Senior Front-End Developer

Als Senior Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Senior Front-End Developer bij Coolblue? Als Senior Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Senior Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen Verbeteren van de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Nadenken

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Ontwikkelaar Centrale Monitoring

Ontwikkelaar centrale Monitoring Functieomschrijving Wil jij een bijdrage leveren aan het onderhoud, opzetten en ontwikkelingen van technologieën van SSC-ICT, een van de grootste ICT-dienstverleners van en voor de Rijksoverheid? Je komt als monitorspecialist te werken bij team Operations Management Services. Dit team werkt aan het stabiliseren en waarborgen van een betrouwbare monitoromgeving voor 7 ministeries. Jij begeleidt het implementatieproces van de te monitoren technologieën, onder andere via management packs, connectoren en API's. Je hebt hiervoor veel contact met interne en externe klanten, die hun wensen op het gebied van monitoring aan jou doorgeven. Je beoordeelt deze wensen en komt met

Bekijk vacature »

SAP HANA Cloud Application Developer

Vacature details Vakgebied: Software/IT Opleiding: Senior Werklocatie: Veldhoven Vacature ID: 12662 Introductie HANA Cloud Application Developer at a High Tech company. The company is the world's leading provider of lithography systems for the semiconductor industry, manufacturing complex machines that are critical to the production of integrated circuits or chips. Our purpose is “unlocking the potential of people and society by pushing technology to new limits”. We do this guided by the principles “Challenge”, “Collaborate” and “Care”. This role is situated in the Big Data Analytics (BDA) Domain. The teams have mixture of young talent and senior specialists and have a

Bekijk vacature »
Maarten van Rijssel

Maarten van Rijssel

26/10/2015 23:18:16
Quote Anchor link
Heeft er iemand verstand van mod_rewrite in je .htaccess bestand, ik niet namenlijk, als je nu naar http://dreamcraft.maartenr.nl/ gaat zie je nog overal index.php?page=page staan o.i.d, dat moet omgezet worden naar /page

Ik heb vanalles gegoogled maar ben er niet uigekomen, er zijn 1400 voorbeeld scripts maar ze werken allemaal weer half,

Klein detail, alle pagina's zijn variable, dus ze stuk voor stuk rewriten in.htaccess heeft weinig zijn

Wie weet hoe dat moet, thats the question
 
PHP hulp

PHP hulp

27/05/2026 12:04:46
 
- Ariën  -
Beheerder

- Ariën -

26/10/2015 23:48:52
Quote Anchor link
Welke heb je al geprobeerd?

Verder moet je wel zelf de nieuwe URL's in je linkjes plaatsen.
 
Thomas van den Heuvel

Thomas van den Heuvel

27/10/2015 00:09:00
Quote Anchor link
Je zou deze thread eens door kunnen lezen voor inspiratie.

Zoals daar wordt aangegeven sta je voor een aantal uitdagingen:
1. het vertalen van een interne URL naar een schone URL,
2. het (terug)vertalen van een schone URL naar een interne URL en
3 (wat nogal eens vergeten wordt) een middel om je interne links consistent te houden.

Wat ik zou doen is één RewriteRule schrijven die ervoor zorgt dat alles wordt doorgestuurd naar index.php, vervolgens kun je daar $_SERVER['REQUEST_URI'] ontleden en bepalen welke pagina er opgevraagd werd.

Op die manier leg je de controle aan de PHP-kant, zodat je (inderdaad) niet eindeloos alles in je .htaccess bestand hoeft te frotten.
Gewijzigd op 27/10/2015 00:10:20 door Thomas van den Heuvel
 
Maarten van Rijssel

Maarten van Rijssel

27/10/2015 08:02:14
Quote Anchor link
Thomas van den Heuvel op 27/10/2015 00:09:00:
Je zou deze thread eens door kunnen lezen voor inspiratie.

Zoals daar wordt aangegeven sta je voor een aantal uitdagingen:
1. het vertalen van een interne URL naar een schone URL,
2. het (terug)vertalen van een schone URL naar een interne URL en
3 (wat nogal eens vergeten wordt) een middel om je interne links consistent te houden.

Wat ik zou doen is één RewriteRule schrijven die ervoor zorgt dat alles wordt doorgestuurd naar index.php, vervolgens kun je daar $_SERVER['REQUEST_URI'] ontleden en bepalen welke pagina er opgevraagd werd.

Op die manier leg je de controle aan de PHP-kant, zodat je (inderdaad) niet eindeloos alles in je .htaccess bestand hoeft te frotten.

Dankje, dit is wat ik nodig had, het is gelukt
 
Maarten van Rijssel

Maarten van Rijssel

28/10/2015 09:35:57
Quote Anchor link
Ik loop onderhand tegen het volgende probleem aan,
Het is me gelukt om /index.php?page=about om te zetten naar /about
Nu wil ik alleen dat waneer ik /about/about-me typ hij het omzet naar index.php?page=about&action=about-me
Wie weet hoe dat moet en hoe ik dan in de html een link moet typen, ik weet dat wanneer je de eerste methode gebruikt je href moet wijzen naar /about maar hoe zit datbij twee link.

Mijn .htaccess nu:
Quote:
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]

RewriteRule ^(.*?)$ $1 [L]
RewriteRule ^(.*?)/(.*?)$ $2 [L]
RewriteRule ^(.*?)$ index.php?page=$1 [L]
RewriteRule ^(.*?)/(.*?)$ index.php?page=$1&action=$2 [L]

ErrorDocument 404 /404.php
 
Thomas van den Heuvel

Thomas van den Heuvel

28/10/2015 14:19:05
Quote Anchor link
Mja, dat gevalsonderscheid kan een machine of mens niet maken tenzij je dit zelf inbouwt.

Dus dat als je een URL van de vorm a/b hebt, er bijvoorbeeld:
- eerst gekeken wordt of er een pagina a/b bestaat,
- en anders een pagina a bestaat (met actie b)
- of alles expliciet opslaat (zie hieronder)

Ik denk dat je het probleem toch min of meer zelf hebt geïntroduceerd in je RewriteRules: je schrijft daar heel specifiek voor wat welk onderdeel betekent (of zou moeten betekenen dus), en vervolgens stop je elk van die onderdelen in een vakje (van de querystring $_GET). Het probleem is nu dat onderdelen in verkeerde vakjes terecht komen.

In zijn algemeenheid is het zo dat je RewriteRules "van specifiek naar algemeen" opstelt, want de eerste regel die (ook in jouw opzet) voldoet wordt gebruikt om de URL te herschrijven en daarna houdt het herschrijf-proces op door de [L] flag achter je Rule. Ik zou dus eigenlijk bovenstaande RewriteRules verwachten in de omgekeerde volgorde.

Maar het kan allemaal veel simpeler.

Het eerste minpunt -zoals ik het zie- in bovenstaande RewriteRules is dat je expliciet querystring-variabelen "claimt" voor het herschrijfproces. Deze zijn dus gereserveerd en kan je niet meer voor andere doeleinden gebruiken. Nu zullen er altijd van dit soort variabelen zijn, maar het is dan beter dat deze ook zichtbaar zijn (hierover later meer).

Als je deze restricties nou eens loslaat? Wil je per sé "action" onderdeel uit laten maken (in een nette vorm) van je URL? Waarom? Deze acties lijken mij vaak pagina-weergaven die toch niet gecrawled worden? Vraag je ook af waarom deze pagina's een nette URL nodig zouden hebben en of dat uberhaupt wel nut heeft.

Zoals ik al eerder aangaf: als je alles doorstuurt naar index.php kun je daar eenvoudig afleiden welke pagina je wilt bekijken. Met behulp van parse_url() van je REQUEST_URI (dit alles staat precies beschreven in het verwijzende artikel) kun je enerzijds je path bepalen en je action zit (en blijft gewoon) in $_GET (zitten). Het is in het geheel niet nodig om hiervoor querystring variabelen te reserveren/claimen via je RewriteRules.

En ja, als je toch wilt volharden in je opzet, zul je alle volledige URL's moeten opslaan in een lijst, waarbij je aangeeft wat het pad is, en hoe de bijbehorende parameters luiden (en wellicht ook welke bijbehorende code er uitgevoerd dient te worden). Dit zul je dus expliciet moeten doen, hiervoor kun je moeilijk/geen generieke regels gebruiken want dan loop je tegen de overlap in de scheiding tussen deze twee aan, dit probleem ondervindt je nu al.

Ook zul je dan op het volgende moeten letten, als je zoiets hebt:
/poll/delete?id=12
en dit wordt intern vertaald naar
/index.php?page=poll&action=delete&id=12
maar je roept dit aan via (ik zou niet weten waarom maar goed)
/poll/delete?id=12&action=hallo
welke action heeft dan voorrang, of liever gezegd, welke action-waarde zit in $_GET. Dit is niet meer evident! Je kunt niet meer uitgaan van wat je ziet (en dat is het tweede minpunt). Je zou in eerste oogopslag verwachten dan $_GET['action'] de waarde "hallo" bevat, maar deze is dus "delete" middels je RewriteRules. Maar dit wordt dus volstrekt niet duidelijk uit je URL en achterhaal je meestal pas na een debug-sessie van $_GET. Dit lijkt mij allesbehalve intuïtief werken.

Daarnaast, bovenstaande URL is een URL aan de beheerkant, dus die wordt niet gecrawled.

Anyway, ik zou het gewoon simpel houden.
Gewijzigd op 28/10/2015 15:00:59 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.