<p>I'm coding a small CMS to get a better understanding of how they work and to learn some new things about PHP. I have however come across a problem.</p>

<p>I want to use mod_rewrite (though if someone has a better solution I'm up for trying it) to produce nice clean URLs, so site.com/index.php?page=2 can instead be site.com/tools</p>

<p>By my understanding I need to alter my .htaccess file each time I add a new page and this is where I strike a problem, my PHP keeps telling me that I can't update it because it hasn't the permissions. A quick bit of chmod reveals that even with 777 permissions it can't do it, am I missing something?</p>

<p>My source for mod_rewrite instructions is currently <a href="http://wettone.com/code/clean-urls" rel="noreferrer">this page here</a> incase it is important/useful.</p>

One approach is to rewrite everything to a handling script
```
```
RewriteEngine on
RewriteBase /

# only rewrite if the requested file doesn't exist
RewriteCond %{REQUEST_FILENAME} !-s 

# pass the rest of the request into index.php to handle     
RewriteRule ^(.*)$ /index.php/$1 [L]
```
```
so if you have a request to
http://yourserver/foo/bar/
what you actually get is a request to
http://yourserver/index.php/foo/bar
- and you can leave index.php to decide what to do with /foo/bar (using $_SERVER['PATH_INFO'] -
tom
)
You only need to modify .htaccess the first time. All future requests for inexistent files can then be handled in PHP.
You might also find
the docs for mod_rewrite
useful - but keep it simple or prepare to lose a lot of sleep and hair tracking down obscure errors.