On Friday, January 16, 2004, at 11:04 AM, Ryan A wrote:

RewriteEngine On
Options +FollowSymlinks
RewriteRule ^tt/(.*).php tt.php?id=$1

This is my php page:
<?php
echo "Ok,we are in tt.php<br>";
if(isset($_GET["id"])){echo "Got \$_GET[id]<br>";}else{echo "No
\$_GET[id]<br>";}
print_r($_GET);
print_r($_REQUEST);
print_r($_GET['id']);
?>

Ryan,


This would have been solved a lot quicker on a list dedicated to Apache.

I tested this, and it works:

.htaccess
---
#Options +FollowSymlinks
<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteRule ^tt.php/(.*) tt.php?id=$1
        RewriteRule ^tt.php/(.*).php tt.php?id=$1
</IfModule>
---

With this tt.php file:
---
<h1>tt.php</h1>
<pre>
<?
print_r($_GET);
?>
</pre>
---

A few notes:

- I commented out the Options line because *my* Apache set-up doesn't need it, but yours may (it depends on the httpd.conf file).

- I've tested the above with the following URLs:
        - http://indentclients.com/tests/ryan/tt/45.php
        - http://indentclients.com/tests/ryan/tt/45
        - http://indentclients.com/tests/ryan/tt/45/
        - http://indentclients.com/tests/ryan/tt.php/45.php
        - http://indentclients.com/tests/ryan/tt.php/45
        - http://indentclients.com/tests/ryan/tt.php/45/

        In all cases, it output:
        Array
        (
        [id] => 45
        )


- it also works for me without the <IfModule...> and </IfModule> lines


- if this STILL doesn't work, it's more than likely that your host does not allow mod_rewrite, doesn't allow you total freedom in your .htaccess file, etc etc -- find a new host.


Justin French


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Reply via email to