RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\/]+)/([^\/]+)/([^\/]+)(\/|)$ index.php?tab1=$1&tab2=$2&tab3=$3 [QSA]
RewriteRule ^([^\/]+)/([^\/]+)(\/|)$ index.php?tab1=$1&tab2=$2 [QSA]
RewriteRule ^([^\/]+)(\/|)$ index.php?tab1=$1 [QSA]
When I go to 'ajax.php' it acts as 'index.php?tab1=ajax.php&t=post&a=new'. Why? And how do I fix this? I want ajax.php to be a separate file.
Have it this way:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?tab1=$1&tab2=$2&tab3=$3 [QSA,L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?tab1=$1&tab2=$2 [QSA,L]
RewriteRule ^([^/]+)/?$ index.php?tab1=$1 [QSA,L]
And remember that RewriteCond
is only applied to most adjacent RewriteRule
.