url rewrite

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer

De vacature Je ontwikkelt innovatieve en gebruikersvriendelijke online-oplossingen. Je werkt in een multidisciplinair team samen met 7 andere developers (zowel frontend als backend), een ux-designer en een digital entrepreneur (business verantwoordelijke). Je werkt ook nauw samen met jullie klanten om online-oplossingen te ontwikkelen. De klant is namelijk product owner van het project en maakt echt deel uit van je team. Jij neemt de ontwikkeling van de backend userstories op je. Hierbij ontwikkel je bijvoorbeeld een API voor een Angular of Vue frontend of voeg je nieuwe functionaliteiten toe aan een bestaande library. Je kiest uiteraard een design pattern dat goed

Bekijk vacature »

Senior Backend Developer

De vacature Within this position you fall under a partner organization of Coosto. This partner organization is a data supplier that is active worldwide in collecting millions of public vacancy data. Within this position you will work in a team that focuses on an efficient way of collecting this data through web crawling / spidering. As a result, you come into contact with all layers of our architecture, consisting of various distributed applications, databases, queues and file systems. We work with Python, Bash / Shell, GlusterFS, MySQL, Redis, Kafka and RabbitMQ and we run all of this in Docker and

Bekijk vacature »

Senior Low-code Developer

De vacature Als Senior Low-code Developer combineer je de rol van IT consultant met die van applicatieontwikkelaar. Je gebruikt je technische expertise, platformkennis en ontwikkelervaring om in een multidisciplinair project of DevOps team kwalitatief hoogwaardige IT oplossingen te implementeren en beheren, zoals mobiele apps, business applicaties en workflow systemen. We werken met moderne cloud platformen, zoals Mendix en Microsoft Power. Als Senior Low-code Developer specialiseer je je in de technologie en toepassingen van deze platformen en heb je een technische rol in presales en delivery trajecten. Functie eisen Afgeronde technische WO- of HBO-opleiding met WO denk- en werkniveau Minimaal 2

Bekijk vacature »

PHP Developer

De vacature Ben je op zoek naar een job waarin je uitdagende projecten mag doen, in een hecht team samenwerkt, veel vrijheid krijgt en aan eigen producten van het bedrijf werkt? Dan is werken bij Prezent Internet zeker wat voor jou! Wij zijn op zoek naar een PHP developer die het team komt versterken. Prezent Internet bestaat uit een team van ervaren ontwikkelaars en wordt er gewerkt aan vooruitstrevende en uitgebreide applicaties. We zoeken iemand die goed binnen dit team past, zelfstandig projecten kan uitvoeren en ook graag met nieuwe technologie aan de slag gaat. Op het gebied van software

Bekijk vacature »

Junior Fullstack Java Developer @ Rotterdam

2021-11-26 iSense Junior Fullstack Java Developer Heb jij jouw HBO of WO studie afgerond en wil je graag opgeleid worden tot Fullstack Java Developer? Mooi! Op 7 februari 2022 starten wij met ons Graduate Programma waarin je na een driemaandelijkse betaalde bootcamp mag gaan starten bij een hele toffe opdrachtgever. Ben jij klaar voor deze stap? ISNA51150 Wat houdt de vacature in? Vanaf 7 februari 2022 krijg jij via de Experis Academy een unieke kans om jouw IT-carrière een kickstart te geven en jezelf te ontwikkelen tot Fullstack Java Developer. Zo volg je de eerste drie maanden een fulltime op

Bekijk vacature »

.NET Software Developer - Amstelveen

De vacature Met je kennis van .NET en de Microsoft-stack het verschil maken in de digitale transformatie van bedrijven; dat is wat wij zoeken in een .NET software developer. In de tijd die je al als software developer bezig bent geweest, heb je inmiddels veel kennis opgedaan over .NET en weet je hoe je in C# het beste applicaties kunt ontwikkelen. Maar wij weten ook dat development breder is dan coderen alleen. Goede software ontwikkelen heeft voor jou net zo goed te maken met het toepassen van best practices en goede architectuur, het efficiënt gebruik van resources of het kunnen

Bekijk vacature »

Teamlead PHP/Laravel ontwikkelaar

De vacature Als Teamlead PHP/Laravel ontwikkelaar ga je werken op verschillende projecten voor uiteenlopende klanten in diverse branches. Eén van deze projecten is een next-gen fintech platform die met jouw hulp naar het volgende niveau wordt gebracht. Jouw ervaring en competenties worden ingezet binnen het gehele ontwerp- en ontwikkeltraject. Je ontwikkelt en implementeert nieuwe functionaliteiten binnen een high-load en high-performance omgeving. Hierbij werk je nauw samen met de klant. Je stuurt daarnaast het lokale en internationale team van front- en back-end ontwikkelaars aan. We verwachten dat je in staat bent snel nieuwe zaken op te pakken en eigen te maken.

Bekijk vacature »

IT-traineeship Low Code Developer

Vind jij het leuk om veel contact te hebben met een klant en je te verdiepen in een domein? Lijkt het je interessant om enerzijds met de klant mee te denken, maar tegelijkertijd ook zelf een bijdrage te leveren aan de implementatie van een IT oplossing? Wij zijn op zoek naar starters die aan de slag willen als low-code engineer. In deze functie bouw je aan applicaties met behulp van een low-code platform, zoals Outsystems, Blueriq, Mendix of Pega. Dergelijke platformen stellen je in staat om snel een werkende applicatie te ontwikkelen en zijn hierdoor heel geschikt voor maatwerk projecten.

Bekijk vacature »

Python Developer

De vacature Je bent betrokken bij het gehele ontwikkeltraject van websites, waarbij jouw focus ligt op het ontwikkelen van de back-end en het CMS. Projecten zullen zowel zeer belevende/visuele websites als corporate websites zijn, die via een CMS beheerbaar zijn. Je technische aanpak is creatief en nauwkeurig waarbij je de structuren helder weet neer te leggen. Ook ben je in staat binnen een team samen te werken, waarbij zaken als kennisoverdracht en duidelijke/eenduidige code centraal staan. Tenslotte ga je tot het uiterste om de diverse door onze eindklant gemaakte producten naar een hoger niveau te tillen. Wij zoeken een gedreven

Bekijk vacature »

Junior Fullstack JAVA developer @ Utrecht e.o.

2021-11-22 iSense Junior Fullstack JAVA developer Heb jij jouw HBO of WO studie afgerond en wil je graag opgeleid worden tot Fullstack Java Developer? Mooi! Op 7 februari 2022 starten wij met ons Graduate Programma waarin je na een driemaandelijkse betaalde bootcamp mag gaan starten bij een hele toffe opdrachtgever. Dit uiteraard met begeleiding van leraren uit de praktijk, seniors, een talent coach en vele workshops. Ben jij klaar voor deze stap? ISNA51139 Wat ga je doen tijdens het Fullstack JAVA ontwikkeltraject? Vanaf 7 februari 2022 krijg jij via de Experis Academy een unieke kans om jouw IT-carrière een kickstart

Bekijk vacature »

C# .NET Core Ontwikkelaar

Binnen ICT Group werken we binnen de business unit transport en logistiek dagelijks aan complexe maatwerk software voor bedrijfskritische systemen. Bij en voor onze klanten gaan we aan de slag met technische, complexe software-oplossingen binnen de technische automatisering op onder meer het IoT vlak. Zo ontwikkelen wij bijvoorbeeld aan een Iot oplossing waar we van ruim 200.000 machines hun telemetrie en events verwerken. Dit komt neer op 200 miljoen berichten per dag. Hierin leggen we de focus op de schaalbaarheid binnen dit project zodat we in de toekomst een veelvoud van berichten kunnen verwerken. Dit wordt mogelijk gemaakt met behulp

Bekijk vacature »

Back-end Developer

De vacature Een legacy applicatie, monoliet, wordt dagelijks gebruikt door alle stakeholders. Moet blijven draaien tijdens een zeer uitgebreide verbouwing: naar gescheiden front end / back end; terwijl ook nieuwe functionaliteit toegevoegd wordt. Back end developers werken in Laravel; om de applicatie robuuster te maken; en ontwikkelen api's; om nieuwe front end modules aan te sluiten en ook te connecten met andere applicaties. Functie eisen Betrouwbaar Open Scherpzinnig Analytisch Teamspeler Leergierig Gedreven Jouw belangrijkste taken 1. Zorg voor betrouwbaar, veilige continuiteit; 2. Vacature Back-end Developer Cooder.nl 3. Ontwikkel een beter onderhoudbaar systeem; 4. Ontwikkel een flexibeler systeem; Over Eurocept Homecare

Bekijk vacature »

Artificial Intelligence Developer - Capelle a/d IJ

De vacature In jouw functie werk je in projecten aan data-gedreven enterprise-applicaties. Met een team bouw je oplossingen rondom data. Dat is de kern van je werk. Maar bij ons ben je consultant en dat betekent meer dan alleen programmeren. Wij vinden het belangrijk dat je naast de techniek zelf ook oog hebt voor de context waarbinnen deze wordt gebruikt en dat je hierover kunt adviseren. Dat is onze en jouw toegevoegde waarde. Je bent op een punt in je loopbaan waar je toe bent aan een nieuwe fase. Met jouw ervaring ben je in staat om startende collega’s wegwijs

Bekijk vacature »

Java Developer / Back-end Developer / 5000 euro @

2021-10-07 iSense Java Developer / Back-end Developer / 5000 euro Ben jij een Back-end Developer die niets van de wereld wil missen? Wil jij dat jouw werkzaamheden zichtbaar zijn voor een groot publiek? Beschik jij over kennis van de modernste technieken en ben je in staat snel te switchen tussen verschillende projecten? Lees dan snel verder! ISZ51146 Organisatie Onze klant is een high traffic organisatie die kwaliteit en digitale transformatie hoog in het vaandel heeft staan. Het is een dynamische en autonome organisatie gevestigd in hartje Amsterdam. Het professionele team waar je in komt te werken is multidisciplinair. Het team

Bekijk vacature »

PHP Developer Shops United

PHP Developer Shops United Rotterdam HBO/WO IT Professional Ben jij een software developer die naast Nederlands en Engels ook PHP, MySQL, KNOCKOUT, Javascript en GiT spreekt? Dan zijn wij op zoek naar jou! Wat ga je doen? Shops United is een van de grootste e-commerce platformen voor verzendingen van pakketten binnen Nederland. Voldoende aandacht besteden aan het logistieke proces en het bijbehorende digitale proces is hierin essentieel. Shops United is expert op het gebied van pakketverzending en biedt een complete verzendoplossing voor alle pakketten in binnen- en buitenland. Parcel Pro  is onze unieke webapplicatie, uitermate geschikt voor elke webshop. Of

Bekijk vacature »
Bernhard Flokstra

Bernhard Flokstra

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 Bernhard Flokstra
 
PHP hulp

PHP hulp

09/12/2021 06:03:33
 
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
 
Bernhard Flokstra

Bernhard Flokstra

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.