FJ-web
FJ-web

Reputation: 143

htaccess: multiple rewriterule

I want to rewrite the following:

http://www.example.com/map to http://www.example.com/index.php?p=map

and

http://www.example.com/map/1 to http://www.example.com/index.php?p=map&id=1

My current code is:

RewriteEngine On
RewriteRule ^([^/]*)\$ /index.php?p=$1 [NC]
RewriteRule ^([^/]*)/([^/]*)\$ /index.php?p=$1&id=$2 [L]

But if fails...

Who can help me with the right .htaccess code? Thanx in advance!

Upvotes: 1

Views: 54

Answers (1)

anubhava
anubhava

Reputation: 785146

You need to ignore real files and directories from your rewrite and don't escape $.

You can use:

RewriteEngine On

# rule to ignore files and directories from all rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/?$ /index.php?p=$1 [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?p=$1&id=$2 [L,QSA]

Upvotes: 1

Related Questions