randombits
randombits

Reputation: 48450

apache mod_rewrite user URLs to index.php

I've always had a fairly standard apache configuration. Right now we're introducing a new concept, user session specific URLs that's going to change things. Basically we have a DocumentRoot and anything such as:

http://example.com/ would hit index.html in the DocumentRoot directive.

But now I'd like to be able to do something like

http://example.com/uid/5/ http://example.com/uid/2

Those should still hit index.html in the DocumentRoot that has been set. The URL is mostly for server-side and client-side scripts to be able to carry out their own tasks.

What's the best way to handle this in Apache? Is mod_rewrite even necessary here?

I also need to be able to support existing paths such as say the following:

http://example.com/foo/bar/something.php will be rewritten to http://example.com/uid/3/foo/bar/something.php but will still hit the same place on the filesystem as before.

Upvotes: 1

Views: 52

Answers (1)

Justin Iurman
Justin Iurman

Reputation: 19016

You could use mod_rewrite by putting this code in your htaccess

RewriteEngine On
RewriteRule ^uid/([1-9][0-9]*)/(.+)$ /$2?uid=$1 [L]

Example:
http://example.com/foo/bar/something.php -> unchanged
http://example.com/uid/3/foo/bar/something.php -> rewritten to /foo/bar/something.php?uid=3


EDIT: without uid appended

RewriteEngine On
RewriteRule ^uid/[1-9][0-9]*/(.+)$ /$1 [L]

Upvotes: 1

Related Questions