Sunil
Sunil

Reputation: 237

HTACCESS rewriting not working for more than 2 parameters

Alright. Here is my htaccess code:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ bank.php?bank=$1
#This will make my url e.g. site.com/citibank

RewriteRule ^(.*)/(.*)$ state.php?bank=$1&state=$2
#This will make my url e.g. site.com/citibank/new-york

RewriteRule ^(.*)/(.*)/(.*)$ location.php?bank=$1&state=$2&district=$3
#This will make my url e.g. site.com/citibank/midtown

PROBLEM: Its working till second rule but when it comes to third and final rule, it created url like: site.com/bank.php/citibank/new-york

Any help would be appreciated. Thanks

Upvotes: 1

Views: 42

Answers (1)

anubhava
anubhava

Reputation: 785146

It is because your first rule is using .* pattern and is matching everything. Change your code to this:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/?$ bank.php?bank=$1 [L,QSA]
#This will make my url e.g. site.com/citibank

RewriteRule ^([^/]+)/([^/]+)/?$ state.php?bank=$1&state=$2 [L,QSA]
#This will make my url e.g. site.com/citibank/new-york

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ location.php?bank=$1&state=$2&district=$3 [L,QSA]
#This will make my url e.g. site.com/citibank/midtown

Upvotes: 1

Related Questions