Rewrite url: ?id=2 naar /id/2 (.htaccess) vraagje...

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Furio Scripting

Furio Scripting

10/06/2013 09:47:56
Quote Anchor link
Goedemorgen,

Kan iemand mij vertellen hoe ik mijn url kan rewriten zodat ik in plaats van:

http://localhost/cms/admin/pages/content/page-overview?id=4
http://localhost/cms/admin/pages/content/page-overview/id/4 krijg.

Er staan online wel wat voorbeelden maar ik kom er maar niet uit, waar plaats ik het httaccess bestand, welke url gebruik ik voor links?

Ik heb al een htaccess bestand in de root van mijn admin folder welke er voor zorgt dat de pagina's netjes worden opgebouwd dus wellicht moet ik iets toevoegen in dat bestandje...

de code is als volgt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?pagina=$1 [L,QSA]
 
PHP hulp

PHP hulp

23/04/2024 16:07:43
 
Eric T

Eric T

10/06/2013 10:08:33
Quote Anchor link
Furio, je link is wat onduidelijk over gekomen.
Bedoel je dat je van de eerste link wilt maken:

"localhost/cms/admin/pages/content/page-overview/id/4" ?

En is de root altijd hetzelfde? (localhost/cms/admin/pages/content/page-overview)

En misschien dat het nog van belang kan zijn...
Ik neem aan dat die link in een bestandje staat genoemd, maar wat maakt die link aan?
Wordt die link n.a.v. de code .htaccess naar een bestand geschreven?
 
Furio Scripting

Furio Scripting

10/06/2013 10:21:52
Quote Anchor link
Beste Eric,

Bedankt voor uw reactie!

Ik wil inderdaad van die eerste link maken /id/4 in plaats van die lelijke ?id=4

De root is niet altijd hetzelfde, zo zijn er ook andere pagina's waar dit zou moeten werken bijv:

http://localhost/cms/admin/pages/your-website/settings
http://localhost/cms/admin/pages/content/add-page

Bij al mijn pagina's zou het mogelijk moeten zijn om achter de url: /id/4 te kunnen linken in plaats van ?id=4

De opmaak is als volgt: admin/pages in pages staan mappen, bijv: your-website en content, dit zijn de namen voor de url, in die mappen zit een bestand die de functie weergeeft in de url bijv: add-page of settings. Het .htaccess bestand in de admin root zorgt ervoor dat er geen index.php?pagina staat....

Ik wil dus dat het mogelijk is na de functie pagina /id/4 te zetten.


Hopelijk is het een beetje duidelijk, mvg Furio
 
Eric T

Eric T

10/06/2013 10:44:34
Quote Anchor link
Nouja, zo lelijk is ?id=4 niet hoor :-) 't wordt nog regelmatig gebruikt...

Als ik het goed begrijp zorgt die .htaccess er dan voor dat een bepaald bestand wordt weggeschreven,
in je voorbeeld dan dus 'page-overview' ?
In principe behoor je dan de link al in orde te maken in je .htaccess bestand/code...
Maar dat is een beetje off-topic eigenlijk.

Misschien dat dit een oplossing is? ->

- Maak in deze folder 'localhost/cms/admin/pages/content' een pagina met de naam 'page-overview'
- Schrijf in die pagina een html meta-refresh van 0 sec op deze wijze:

<html>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$id
= $_POST['id'];
?>

<meta http-equiv='refresh' content='0; url=http://localhost/cms/admin/pages/content/page-overview/id/
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $id; ?>
'>"
</html>

Maar mogelijk begrijp ik niet 100% exact wat het doel is...
Eventueel kun je binnen php ook nog met strpos() de postie van het vraagteken zoeken, en daarmee iets doen.
Maar ik denk dat je binnen de htaccess e.e.a. zal moeten aanpassen.
Helaas is het voor mij te lang geleden dat ik nog weet hoe dat zou moeten vrees ik :-(

Ik hoop dat je iets aan mn info hebt desondanks...
 
Erwin H

Erwin H

10/06/2013 11:00:54
Quote Anchor link
Als het goed is zou de rewrite die je hebt al moeten werken. Probeer het eens met de door jouw gewilde url en zet dan in je index:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
print_r($_GET);
exit;
?>

Als het goed is moet je dan voor 'pagina' de waarde 'page-overview/id/4' hebben. Die kan je dan gewoon exploden op '/' en dan heb je alle gegevens die je nodig hebt.
 
Furio Scripting

Furio Scripting

10/06/2013 11:21:56
Quote Anchor link
Beste Erwin,

Ik heb nu als link: <a href="http://localhost/cms/admin/pages/content/page-overview/id/'.$row['id'].'">

Dus als voorbeeld krijg je dan: http://localhost/cms/admin/pages/content/page-overview/id/4

Ik krijg dan telkens te zien, pagina niet gevonden...dus waarschijnlijk werkt het toch nog niet?

In mijn index had ik de code gezet van jouw en helaas zegt die daar ook steeds pagina niet gevonden.

Alvast heel erg bedankt voor de hulp!

Mvg Furio
 
Erwin H

Erwin H

10/06/2013 11:23:34
Quote Anchor link
Waar staat je htaccess bestand?
 
Furio Scripting

Furio Scripting

10/06/2013 11:31:40
Quote Anchor link
Erwin H op 10/06/2013 11:23:34:
Waar staat je htaccess bestand?


Het .htaccess bestand staat in de admin folder.

cms - admin - .htaccess

In de admin folder staan ook de volgende folders:

css
functions
images
languages
modules
pages
scripts
index.php
 
Erwin H

Erwin H

10/06/2013 14:57:42
Quote Anchor link
Ik ben niet de htaccess en mod rewrite guru hier, maar om een poging te wagen.
Omdat je een directory pages hebt zal je rewrite denk ik niet werken. Als je de url even iets anders maakt:
http://localhost/cms/admin/pages2/content/page-overview/id/4
dan zou je rewrite wel gebruikt moeten worden en zal je dus naar de index.php verwezen worden. Daarna weer wat ik eerder al gaf.
 
Furio Scripting

Furio Scripting

10/06/2013 15:08:40
Quote Anchor link
Helaas geeft die niets terug behalve dan: Array ( [pagina] => pages/content/page-overview )

Mocht u nog andere opties weten dan hoor ik dit graag :)



Toevoeging op 10/06/2013 15:20:25:

Als voorbeeld wil ik dus wat dit forum ook heeft, zie de url.

http://www.phphulp.nl/php/forum/topic/rewrite-url-id2-naar-id2-htaccess-vraagje/91098/

91098 is de id.
 



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.