SEO vriendelijke URL in admin

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jeremy Evers

Jeremy Evers

19/03/2014 20:34:24
Quote Anchor link
Beste Mensen,

Ik wil deze url: www.blabla.nl/admin/page=bestellingen/product=schoenen

graag veranderen in www.blabla.nl/admin/bestellingen/schoenen

nu is me dit al wel gelukt dmv een htaccess, en dit gebeurt uiteraard ook bij andere paginas. Enkel waar ik nu tegenaanloop is dat ik graag de schoenen eruit wil halen en dan een actie maken. bijvoorbeeld een echo. Dus als het schoenen is dat echo bla anders echo bli. Maar ik weet niet precies hoe ik dit moet aanpakken.
 
PHP hulp

PHP hulp

20/04/2024 06:59:37
 
- Ariën  -
Beheerder

- Ariën -

19/03/2014 20:45:09
Quote Anchor link
explode() ?
 
Jeremy Evers

Jeremy Evers

19/03/2014 20:51:36
Quote Anchor link
ja heb ik zo gedaan:

$explode = explode("/", $_SERVER['REQUEST_URI']);

if(isset($explode[3])){
if($explode[3] == "add"){
echo "d";
}
}

Maar ik krijg terug dat de pagina niet bestaat. Dus gewoon een 404 not found
 
- Ariën  -
Beheerder

- Ariën -

19/03/2014 20:59:07
Quote Anchor link
Dat zal wel los van dit stukje staan, want hierin wordt geen site opgevraagd.
 
Jeremy Evers

Jeremy Evers

19/03/2014 21:02:58
Quote Anchor link
ja dat begrijp ik, maar ligt dit misschien aan mijn htaccess? Want het is nu dus: http://localhost/admin/winkel/add/ waarbij ik die add probeer op te halen. Maar hij zegt dan dit:

The requested URL /admin/winkel/add/.php was not found on this server.
 
Michael -

Michael -

20/03/2014 09:08:02
Quote Anchor link
Als je www.blabla.nl/admin/?page=bestellingen&product=schoenen
hebt en je deze met rewriterule omzet naar www.blabla.nl/admin/bestellingen/schoenen
Dan kun je toch nog steeds $_GET['product'] gebruiken?
Ik snap je gekloot met explode niet, of ik snap je vraag niet ...
 
Jeremy Evers

Jeremy Evers

20/03/2014 20:54:46
Quote Anchor link
Ja oke ik heb het nu zo gemaakt inderdaad: www.blabla.nl/admin/bestellingen?action=add

maar nu wil ik dat daar komt te staan: www.blabla.nl/admin/bestellingen/add

hoe kan ik dit in de htaccess veranderen?
 
Michael -

Michael -

21/03/2014 09:03:16
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
RewriteEngine on
RewriteBase /
#static
RewriteRule ^bestellingen/add/?$ bestellingen.php?action=add [L]
#of dynamisch mocht je meerdere action hebben
RewriteRule ^bestellingen/([^.?/]+)/?$ bestellingen.php?action=$1 [L]

één van de twee kun je gebruiken wat het beste in jouw situatie past.
Niet allebei ;)
Gewijzigd op 21/03/2014 09:04:26 door Michael -
 
Jeremy Evers

Jeremy Evers

21/03/2014 09:12:21
Quote Anchor link
Maar is het dan ook zo dat als ik een andere pagina heb, dat ik dan weer deze regel moet toevoegen:
RewriteRule ^bestellingen/([^.?/]+)/?$ bestellingen.php?action=$1 [L]

Dan krijg ik straks 10 van die regels onder elkaar als ik meerdere paginas krijg?
 
Michael -

Michael -

21/03/2014 09:18:35
Quote Anchor link
Ligt er dus aan wat je wil. Daarom gaf ik 2 voorbeelden.
Wat voor pagina's heb je?
Je zou het ook zo kunnen doen namelijk (Niet getest)
RewriteRule ^([^.?/]+)/([^.?/]+)/?$ $1.php?action=$2 [L]
Maar dan ben je wel afhankelijk van de action omdat je deze er juist uit wilt laten.
Probeer eens wat uit zou ik zeggen, er is een hoop mogelijk afhankelijk van wat voor jou handig is.

edit
Die action ligt natuurlijk ook aan jouw manier van programmeren. Persoonlijk zou ik dat namelijk nooit meegeven alleen pagina.php?add of pagina.php?send etc.
Dan kun je in je htaccess ook wat flexibeler zijn.
Veel rewriterules hebben is ook niet erg hoor.
Gewijzigd op 21/03/2014 09:21:04 door Michael -
 
Jeremy Evers

Jeremy Evers

21/03/2014 09:21:30
Quote Anchor link
Ja ik begrijp inderdaad wat je bedoelt. Het probleem is dat ik niet precies weet hoe die htaccess werkt. Ik het me er in geprobeerd te verdiepen, maar vind het erg lastig. Ik heb een adminpaneel gemaakt, en soms wordt deze url opgeroepen: www.blabla.nl/bestellingen of www.blabla.nl/bestellingen?action=add (dus met en zonder action)

maar soms ook dit: www.blabla.nl/winkel?cat=bloemen&action=edit

ik wil de htaccess zo dynamisch mogelijk opbouwen.
 
Michael -

Michael -

21/03/2014 09:29:17
Quote Anchor link
Helemaal ontkom je er niet aan hoor. Ik heb voor een simpele site ook 40/50 regels. Dat houd het ook wel weer overzichtelijk en voor bijv index.php wil ik niet site.com/index/ dus wordt dat toch alweer een aparte regel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
RewriteRule ^([^.?/]+)/?$                       $1.php                  [L]
RewriteRule ^([^.?/]+)/([^.?/]+)/?$             $1.php?action=$2        [L]
RewriteRule ^([^.?/]+)/([^.?/]+)/?$             $1.php?cat=$2           [L]
RewriteRule ^([^.?/]+)/([^.?/]+)/([^.?/]+)/?$   $1.php?cat=$2&action=$3 [L]


edit
Nou zie je dat het bij de 2e en 3e regel al mis gaat. Omdat je één actie wilt voor meerdere doelen. winkel/bloemen/ zou nou verwijzen naar winkel.php?action=bloemen
Gewijzigd op 21/03/2014 09:33:12 door Michael -
 
Jeremy Evers

Jeremy Evers

21/03/2014 09:30:47
Quote Anchor link
Dankje, ik ga het proberen!
 
Michael -

Michael -

21/03/2014 09:33:58
Quote Anchor link
Zie ook de edit. Daardoor zou je die 2 toch weer apart moeten noemen.
 
Jeremy Evers

Jeremy Evers

21/03/2014 09:38:18
Quote Anchor link
Inderdaad, dus eigenlijk is het apart nemen van de pagina's alsnog het beste?
 
Michael -

Michael -

21/03/2014 09:44:29
Quote Anchor link
Ja in ieder geval voor bestellingen en winkel dus een aparte regel en die action en cat kunnen nog wel open blijven.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
RewriteRule ^([^.?/]+)/?$                       $1.php                      [L]
RewriteRule ^bestellingen/([^.?/]+)/?$          bestellingen.php?action=$2  [L]
RewriteRule ^winkel/([^.?/]+)/?$                winkel.php?cat=$2           [L]
RewriteRule ^winkel/([^.?/]+)/([^.?/]+)/?$      winkel.php?cat=$2&action=$3 [L]

Let er trouwens op dat ([^.?/]+) betekent dat je ALLE karakters accepteert. Je kunt dit beperken door alleen cijfers ([0-9]+) alleen letters ([A-Za-z]+) of een combinatie ([A-Za-z0-9]+) en eventueel nog met wat tekens die wel mogen zoals _ en -([A-Za-z0-9_-]+)
Gewijzigd op 21/03/2014 09:45:07 door Michael -
 
Jeremy Evers

Jeremy Evers

21/03/2014 09:46:30
Quote Anchor link
Oke helemaal top, dankjewel ik ga ermee aan de slag.
 
Michael -

Michael -

21/03/2014 09:48:44
Quote Anchor link
Als het is gelukt of als het niet lukt horen we het graag :)
 
Jeremy Evers

Jeremy Evers

21/03/2014 20:20:51
Quote Anchor link
Het werkt niet helemaal. dit is mijn link nu:
http://localhost/admin/producten.php?categorie=test%20category


en als ik dan dit toepas in de htaccess:
RewriteRule ^producten/([^.?/]+)/?$ producten.php?categorie=$2 [L]

gebeurt er niets met mijn link
 
Michael -

Michael -

21/03/2014 21:49:50
Quote Anchor link
Als je dan naar http://localhost/admin/producten/test%20category gaat gebeurd er niks bedoel je?
Edit: $2 moet trouwens $1 zijn.
Gewijzigd op 21/03/2014 21:50:41 door Michael -
 
Jeremy Evers

Jeremy Evers

21/03/2014 21:53:50
Quote Anchor link
ik heb het nu zo dat hij goed is, enkel heb ik er een toegevoegd:

RewriteRule ^producten/(.*)/$ producten.php?action=$1 [L]

En als link dit:
http://127.0.0.1/admin/producten/add/

Maar als ik dan $_GET['action']; doe krijg ik niets.. Dan staat er dat hij undefined is
 

Pagina: 1 2 volgende »



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.