Welcome to WebmasterWorld Guest from 220.127.116.11 , register , free tools , login , search , pro membership , help , library , announcements , recent posts , open posts Become a Pro Member
mod_rewrite / php problem Crazy_Fool
i don't use mod_rewrite very often and i've spent all morning banging my head against a brick wall on this. i've read hundreds of messages here and not found the answer.
my htaccess file looks like this:
Options Includes +ExecCGI AddType text/x-server-parsed-html .html RewriteEngine on Options +FollowSymlinks
RewriteRule items/(.*)\.html$ [ ...] mydomain.com RewriteRule (.*)/(.*)\.html$ [ ...] mydomain.com
the first rule works fine, the second doesn't.
the second rule should rewrite: www.mydomain.com/widgets/123.html to: www.mydomain.com/index.php?category=widgets&s=123
index.php displays normally, but the value of category ($1)becomes the first (.*) plus everything within (.*)/(.*)\.html and s is empty
ie, if i enter the URL: www.mydomain.com/widgets/123.html then my script says that: $category = widgetswidgets/123.htmls=123 $s = (empty)
any idea what i'm doing wrong? any help much appreciated.
Try using negative character classes like so:
RewriteRule [ httpd.apache.org] ([^/]+)/([^/]+)\.html$ index. PHP [ php.net]?category=$1&s=$2
You do not need to prefix [
...] since it will be stripped off by thishost mod_rewrite [ httpd.apache.org] anyway.
nope, that doesn't fix it .... seems to work exactly the same as before
i've also discovered that the first line works fine when it's the only RewriteRule line or if the second is commented out, but when the second RewriteRule is there, the first one messes up the same.
any other clues?