Voor mijn site wil ik URL's gebruiken als:
http://dev.project.domein.nl/forum/topic/4 of
http://dev.project.domein.nl/site/contact


ik heb de volgende rewrite-rules in mijn .htaccess staan.

RewriteEngine On 
RewriteBase / 
RewriteCond %{REQUEST_URI} -f 
RewriteRule .              - [L] 

# hier heb je geen RewriteCond meer nodig, omdat je dat hierboven al afvangt 
RewriteRule ^([^/]+)/([^/]+)/?$  index.php?p=$1&id=$2 [L] 


Omdat ik in de ?p= al een / gebruik. (?p=site/contact) gaat de rewrite over zijn nek.

Hoe valt dit op te lossen. Kan je een slash ook uitsluiten?
Iemand enig idee?
Zoiets misschien?

RewriteRule ^(.+)/(\d+)$ index.php?page=$1&id=$2 [L]
RewriteRule ^(.+)/?$ index.php?page=$1

Dit herschrijft links als
domein.nl/forum/topic/4 -> index.php?p=forum/topic&id=4
domein.nl/forum/topic/asd -> index.php?p=forum/topic/asd
domein.nl/forum/topic  -> index.php?p=forum/topic
domein.nl/forum/topic/ -> index.php?p=forum/topic
domein.nl/site -> index.php?p=site
Nee, die werkt helaas ook niet.
En de images URL's worden ook herschreven, en hij stuurt alles naar index.php door?


RewriteEngine On 
RewriteBase / 

# hiermee worden bestaande bestanden niet herschreven, de "-" betekent: niets doen. 
RewriteCond %{REQUEST_URI} -f 
RewriteRule .              - [L] 

RewriteRule ^(.+)/(\d+)$ index.php?p=$1&id=$2 [L]
RewriteRule ^(.+)/?$ index.php?p=$1 

Iemand?
Geen idee of dit werkt, Maar je zou het kunnen proberen.

<?PHP

RewriteRule ^([^/]*)/$ /index.php?p=$1 [L]

?>
En hoe wordt de andere rewrite dan die ik ook heb?
Werkt ook niet. Hij doet niks met na de slash in $1.
DAT is nou juist mijn probleem.

RewriteCond %{REQUEST_URI} -f 
RewriteRule .              - [L]

Die twee regeltjes snap ik niet helemaal. Dat links naar al bestaande bestanden niet worden herschreven los ik zo op:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Als ik het me goed herinner checkt die eerste of het bestand bestaat, en die tweede of het bestand misschien een symlink is (en het in weze ook bestaat) Ik heb er ook geen aparte RewriteRule meer onder staan zoals jij, maar gewoon een paar witregels, en dan m'n eigen RewriteRule's

Reageren