url rewrite

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

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 »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »

Python (Django) developer - Remote in The Netherla

Functie Together with your team, consisting of a senior, 2 mediors and one junior developer, you will work on their software in an Agile-based approach. You have an eye for quality, risk, and customer interest. Communication with your colleagues and, where necessary, with customers, plays an important role in achieving a successful result. As a person, you are smart, get things done, and are result-oriented. There is a lot of independence within the development team, apart from the stand-up (10:00 am) and occasional pair-programming sessions. Techniques they use include Python, Django, MySQL, Mercurial, Ubuntu Linux, Nginx. In terms of front-end

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

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 »

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

Senior Mobile Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Mobile Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

Senior Front-end developer Consultancy

Functie Als front-end developer ga je aan de slag voor verschillende klanten, waarbij veel rekening wordt gehouden met waar je woont (dit is altijd binnen het uur), en word er gezocht naar een organisatie die past bij jou. Zowel qua persoonlijke ambities als de technische aansluiting. De opdrachten duren gemiddeld 1 à 2 jaar maar dit hangt ook af van je wensen. Je werkt in een teamverband voor een klant en zult nauw samenwerken met zowel eigen collega’s als die bij de klant werkzaam zijn. Ze zijn op zoek naar een technische front-end developer die ruime ervaring heeft in één

Bekijk vacature »

Java Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Senior Front-end developer (React)

Functie Met een ontwikkelafdeling van ruim 20 collega’s is dit zo ongeveer de helft van alle medewerkers. De software(ontwikkeling) is dan ook de drijvende kracht binnen de organisatie. Ze werken aan het verbeteren dan de bestaande, maar zeker ook nieuwe producten. De software bestaat uit verschillende (React) webapplicaties, maar ook een mobile (React native) app. Hierdoor kom je met verschillende uitdagingen in aanraking en is Mobile kennis natuurlijk mooi meegenomen. De software wordt door vele duizenden professionals dagelijks gebruikt en bevatten grote hoeveelheden data. Aan het team de uitdaging om hierin de best mogelijke gebruiksvriendelijkheid neer te zetten door gebruik

Bekijk vacature »

Software developer - C Sharp

Functie omschrijving Heb jij interesse in het programmeren en ontwikkelen van software? En heb jij enige ervaring met Oracle databases en PL/SQL? Wij zijn voor een leuke opdrachtgever in omgeving Naaldwijk op zoek naar een software ontwikkelaar die graag werkt met C#, JAVA of Oracle. Wij zoeken iemand die breed inzetbaar is en die aan veel verschillende applicaties wilt werken. Als software developer werk je met je collega's samen in een leuk en informeel team aan het (her)ontwerpen van bedrijfssystemen. Je houdt je bezig met het ontwikkelen van REST API's en je onderhoudt applicaties in Oracle PL/SQL en APEX. Vind

Bekijk vacature »

Senior Java Ontwikkelaar

Dit ga je doen Werken aan uiteenlopende interne projecten voor grote (internationale) organisaties; Ontwikkelen van diverse (web)applicaties en platformen met technieken als Java, Azure en ASP.NET; Complexe vraagstukken tackelen met jouw expertise en ervaring; Waar nodig help jij je collega's om samen tot de juiste oplossing te komen. Hier ga je werken Als Java Developer kom je te werken bij een internationale organisatie in regio Amsterdam die zich richt op procesoptimalisatie door middel van zeer complexe IT oplossingen. Dit doen zij op het allerhoogste niveau met vestigingen over heel de wereld en met een groot aantal aansprekende, maatschappelijk betrokken klanten.

Bekijk vacature »

Back-end Programmeur

Functieomschrijving Heb jij kort geleden je HBO ICT in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een ambitieuze werkgever in de regio van Breda zijn wij op zoek naar een Back-end programmeur met affiniteit met C#.NET, SQL en MS Access. Samen met team bestaand uit ware ICT professionals ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Belangrijk is dat je kennis of ervaring hebt van C#.NET en SQL. Je toont een flexibele en sociale houding naar klanten toe. Je denkt in nieuwe mogelijkheden & gaat graag de uitdaging aan. Bedrijfsprofiel De

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Front-end developer (medior/senior)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

Bekijk vacature »

02/11/2017 16:06:19
Quote Anchor link
Mijn website heeft URL's die worden opgebouwd als: example.com/key/new/ & example.com/orderlist/ & example.com/users/view/

Wat ik wil is dat al deze urls verwijzen naar index.php en ik /key/new/ als GET parameter gebruiken kan. Hoe kan ik dit voor elkaar krijgen? Ik heb al ik weet niet hoe lang niet meer met URL rewrite gewerkt.

Wat ik op dit moment in .htaccess heb is het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l

RewriteRule ^ - [L]
RewriteRule ^(.*)/*(.*)/*(.*)/*(.*)/*$ index.php?a=$1
#RewriteRule ^ ([^/]+)/ index.php?a=$1
</IfModule>
Gewijzigd op 02/11/2017 16:06:38 door
 
PHP hulp

PHP hulp

25/04/2024 23:51:21
 
Frank Nietbelangrijk

Frank Nietbelangrijk

02/11/2017 17:34:49
Quote Anchor link
Wat je wilt zou wel kunnen maar of dat heel erg flexibel gaat worden is maar zeer de vraag.

Is dit niet een goed moment om je eens te verdiepen in een php framework? Die haalt deze zorg en andere zorgen namelijk uit je handen.

Er zijn er verschillende maar misschien is cakePHP iets voor je? Pak gewoon eens een paar tutorials op youtube ;-)

Als dat goed gaat zou ik je willen vragen (ik kan het niet laten) eens naar Symfony te kijken.
Gewijzigd op 02/11/2017 17:38:50 door Frank Nietbelangrijk
 
Rob Doemaarwat

Rob Doemaarwat

02/11/2017 19:51:18
Quote Anchor link
Meestal is het iets van
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]

De staart van je URL staat nu in $_GET['url'] (in z'n geheel). In PHP kan je daar nu helemaal los mee gaan.

Je kunt ook dit doen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
RewriteRule ^(.*)$ /index.php/$1 [QSA,L]

En dan staat ie in $_SERVER['PATH_INFO'] (soms ergens anders volgens mij, doe gewoon even print_r($_SERVER) )
 
Thomas van den Heuvel

Thomas van den Heuvel

02/11/2017 19:55:22
Quote Anchor link
Wauw, dat is wel een erg moeilijke manier (@TS) om alles door te sturen naar index.php?

Als je nu een alles naar index.php doorstuurt en daar de URL verder ontleedt?

Het is trouwens niet nodig om datgene wat in de REQUEST_URI zit nogmaals in een querystring-variabele te stoppen, dit is in zekere zin ook vervuiling van $_GET. Daarnaast is het dan ook niet langer intuïtief wat in $_GET zit, want normaal gesproken kun je dit gewoon in de URL zien, terwijl je in de huidige opzet dingen onderwater injecteert in $_GET. Niet doen dus!

Ik gebruik min of meer het volgende. Het kan overigens geen kwaad om e.e.a. van commentaar te voorzien zodat je na verloop van tijd nog weet waar het voor dient:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Enable rewriting.
RewriteEngine on

# Optional: do not allow perusal of directories.
Options -Indexes

# Optional: explicitly enable per-directory rewrites in the .htaccess context.
Options +FollowSymLinks

# Required when not in the webroot. Always use a trailing slash.
RewriteBase /

# To be able to access existing directories and files (standalone scripts).
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

# Redirect everything else to index.php.
# Add QSA to ensure that querystring variables are registered as such.
RewriteRule . index.php [L,QSA]


Vervolgens analyseer je aan de PHP-kant $_SERVER['REQUEST_URI'].

En als je geen zin hebt in een doe-het-zelf pakket dan is een framework wellicht een beter alternatief.
Gewijzigd op 02/11/2017 19:57:21 door Thomas van den Heuvel
 
Rob Doemaarwat

Rob Doemaarwat

02/11/2017 20:12:46
Quote Anchor link
Het 'nadeel' van REQUEST_URI vind ik dat je de evt. "query string" (het stuk na een "?" in een URL) d'r ook bij krijgt. Die kun je d'r natuurlijk ook uit pulken, maar via de PATH_INFO constructie heb je daar geen last van.
 
Thomas van den Heuvel

Thomas van den Heuvel

02/11/2017 21:31:01
Quote Anchor link
Maar daarvoor zijn functies als parse_url() die tevens kijkt of een URL er een beetje fris uitziet. Daarnaast is het niet verstandig om zonder meer het querystring-gedeelte te gebruiken, omdat deze in de REQUEST_URI nog url-geëncodeerd is. Dit in tegenstelling tot $_GET en $_POST, waarin de data al url-gedecodeerd is. Voor de querystring zou ik gewoon altijd $_GET (blijven) gebruiken om deze te benaderen.

Om een schoongemaakt pad te verkrijgen, zou je zoiets kunnen doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// Read REQUEST_URI, suppress errors (gave E_WARNING prior to PHP 5.3.3).
$uriData = @parse_url($_SERVER['REQUEST_URI']);

$path = '';
if ($uriData === false) {
    // Do something?
} else {
    if (isset($uriData['path'])) {
        // We might be in a subdirectory of the webroot.
        // We are only interested in the part starting from this relative root.

        $path = str_replace(DIRECTORY_SEPARATOR, '/', $uriData['path']);
        $relativePath = str_replace(DIRECTORY_SEPARATOR, '/', dirname($_SERVER['SCRIPT_NAME']));
        // Strip the relative path from $path.
        $path = substr($path, strlen($relativePath));
        // Finally, strip any leading/trailing slashes so we end up with a "cleaned" path.
        $path = trim($path, '/');
    }
}

?>

Of, in het kort, zonder commentaar, kun je regels 10-17 vervangen door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$path
= trim(substr($uriData['path'], strlen(dirname($_SERVER['SCRIPT_NAME']))), '/');
?>

Bovenstaand(e) script(s) retourneren enkel het relevante (applicatie)pad, gezien vanaf de (mogelijke subdirectory vanaf de root naar de) index.php waar naar verwezen wordt via .htaccess. (multibyte karakters in de URL daar gelaten, uiteraard)

EDIT: neemt niet weg dat er andere (en even flexibele) oplossing mogelijk zijn. Zo werd hier een tijd geleden in plaats van bovenstaande .htaccess-constructie een vele malen simpelere variant geopperd met gebruikmaking van FallbackResource. Zoals altijd vele oplossingen mogelijk.
Gewijzigd op 03/11/2017 00:25:36 door Thomas van den Heuvel
 

03/11/2017 12:48:28
Quote Anchor link
Ik heb inmiddels gevonden wat de oplossing is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<IfModule mod_rewrite.c>
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l

RewriteRule ^ - [L]
RewriteRule ^(.*)/*(.*)/*(.*)/*(.*)/*$ index.php?page=$1
</IfModule>

Dit stukje code doet precies wat ik wil.

Frank Nietbelangrijk op 02/11/2017 17:34:49:
Is dit niet een goed moment om je eens te verdiepen in een php framework?

Ik ben bekend met Symfony (1.4 nog), Zend Framework, Codeignitor en cakePhp. Maar ik heb al in geen jaren meer zelf geprogrammeerd. Ik wil dit juist doen om mijn geheugen weer op te frissen.
 
Thomas van den Heuvel

Thomas van den Heuvel

03/11/2017 14:14:25
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
RewriteRule ^ - [L]
RewriteRule ^(.*)/*(.*)/*(.*)/*(.*)/*$ index.php?page=$1

Dit mag dan wellicht werken, maar waarom doe je dit op de bovenstaande manier? Heb je mijn reacties gelezen?

Met name dit deel:
Thomas van den Heuvel op 02/11/2017 19:55:22:
Het is trouwens niet nodig om datgene wat in de REQUEST_URI zit nogmaals in een querystring-variabele te stoppen, dit is in zekere zin ook vervuiling van $_GET. Daarnaast is het dan ook niet langer intuïtief wat in $_GET zit, want normaal gesproken kun je dit gewoon in de URL zien, terwijl je in de huidige opzet dingen onderwater injecteert in $_GET. Niet doen dus!
Gewijzigd op 03/11/2017 14:23:09 door Thomas van den Heuvel
 
Frank Nietbelangrijk

Frank Nietbelangrijk

03/11/2017 15:56:24
Quote Anchor link
>> Ik ben bekend met Symfony (1.4 nog)

Welkom terug dan :-) We zijn inmiddels bij versie 3.3. Waarschijnlijk is er wel het een en ander veranderd. Ik ben volgens mij ergens bij Symfony 2.6 begonnen. Daarvoor ben ik dus blanco.
 
Jan de Graaf

Jan de Graaf

08/11/2017 21:56:01
Quote Anchor link
Ik heb laatst zelf een router class gemaakt waarmee je urls kunt toevoegen en die kunt bezoeken door bijvoorbeeld /contact te doen, nu is het idee dat ik een soort van simpel cms systeem wil maken. ik gebruik een functie die de naam controleert, en doormiddel van die naam de juiste dynamische content uit de database te halen. Aangezien ik dus 1 class gebruik voor alle pagina's met hetzelfde ontwerp, vraag ik mij af hoe ik een admin controller of iets kan maken waarmee ik als ik naar voorbeeldsite/admin ga dat ik dan een andere class gebruik die de admin pagina functionaliteit afhandelt. Als iemand mij wilt helpen kun je me ook vragen om mijn skype via een privé bericht.
Alvast bedankt!
 
- Ariën  -
Beheerder

- Ariën -

08/11/2017 22:04:22
Quote Anchor link
Jan de Graaf op 08/11/2017 21:56:01:
Als iemand mij wilt helpen kun je me ook vragen om mijn skype via een privé bericht.
Alvast bedankt!

Je kan je vraag ook prima kwijt in een nieuw topic op dit forum. Zo kunnen meerdere mensen hun blik erop werken.
Gewijzigd op 08/11/2017 22:04:54 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

08/11/2017 22:11:27
Quote Anchor link
Je gebruikt inmiddels dus een frontcontroller/single-point-entry en je werkt al met routes maar verwijst iedere route naar dezelfde class. Dat vraagt dan om een kleine uitbreiding. Je zou het ala Codeigniter eventueel zo kunnen doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
voorbeeldsite/{controller}/{method}/{parameter}/{parameter}


Alle variabelen zijn optioneel.

voorbeeldsite/ --> ga naar DefaultController::indexAction()
voorbeeldsite/contact --> ga naar ContactController::indexAction()
voorbeeldsite/contact/confirmation --> ga naar ContactController::confirmationAction()
voorbeeldsite/admin/cms/homepage --> ga naar AdminController::cmsAction($page) (page = homepage)

Niet helemaal perfect maar het werkt.

Maar waarom kijk je niet naar een bestaande oplossing?


Gewijzigd op 08/11/2017 22:35:20 door Frank Nietbelangrijk
 
Thomas van den Heuvel

Thomas van den Heuvel

08/11/2017 22:38:21
Quote Anchor link
Frank Nietbelangrijk op 08/11/2017 22:11:27:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
voorbeeldsite/{controller}/{method}/{parameter}/{parameter}

Die opzet is niet toereikend als je vrij wilt zijn in de naamgeving van je pagina's. Houdt wel in dat je op een andere plek wat werk moet verzetten.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/11/2017 17:58:44
Quote Anchor link
>> Die opzet is niet toereikend als je vrij wilt zijn in de naamgeving van je pagina's. Houdt wel in dat je op een andere plek wat werk moet verzetten.

Klopt. Daarom mijn Edit. Gewoon leren om Composer te gebruiken en binnen vijf minuten heb je dan een prachtige router.
 



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.