[Nottingham] Apache / mod_rewrite / php and environment variables

David Aldred david at familyaldred.org.uk
Sun Dec 17 17:25:02 GMT 2006


Setup: Locally, Apache 2.2.3 and PHP 5.1.6 on Kubuntu Edgy;  same problem 
applies on my webhost (I don't know exactly which versions of Apache and 
Linux are in use there; they have PHP4).

I'm having a bit of trouble with using mod_rewrite to set environment 
variables, then php to read them...

.htaccess in directory 'test' contains:

	RewriteEngine On
	RewriteRule ^w/S=([^/]+)/(.*) w/$2 [env=STATUS:$1]

..which should take http://aldred.org/test/w/S=mysite/index.php and convert it 
to http:/aldred.org/test/w/index.php, with the environment variable 'STATUS' 
set to 'mysite'.

aldred.org/test/w/index.php just has:
	<?php
	echo "Hello, World.";
	print_r($_ENV);
	print_r($_GET);
	print_r($_SERVER);
?>

aldred.org is based on my webhost, and the result of 
http://aldred.org/test/w/S=mysite/index.php is 'Hello World', followed by a 
listing of a lot of stuff - but no variable called 'STATUS'.  Using a locally 
hosted version, the precise output is different (of course), but still 
no 'STATUS'.

It seems that mod_rewrite is doing its job in rewriting the URL, but PHP 
either the environment variable isn't being set or PHP can't read it.

Where's it gone? Or am I missing something obvious (again!)? 
-- 
David Aldred



More information about the Nottingham mailing list