View Single Post
  #1  
Old 2nd June 2012, 20:47
autogun autogun is offline
Member
 
Join Date: Sep 2009
Posts: 69
Thanks: 9
Thanked 5 Times in 5 Posts
Default Apache mod_rewrite - Regex explanation

Hello all,

This one is killing me, I was banging my head for several hours and couldn't solve it until I got some external help.

What I was trying to achieve is - Every request that is not calling index.php, robots.txt or resources folder to be rewritten to example.com/index.php/variable

On a development server, this worked as expected:
Code:
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
But when I moved the code to my production server (running ISPConfig), the above didnt work because "?" had to be added:
Code:
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Can maybe someone explain me, why?
I was lost here :-(
Reply With Quote
Sponsored Links