Ajay_Kumar
Ajay_Kumar

Reputation: 1387

How to exclude a specific file in htaccess

I have written below code in htaccess

RewriteRule ^([a-zA-Z_-]+).php$ http://www.domain.com/myfile.php?page=inc-$1.php [NC]

I don't want the index.php file to be rewritten - it should open normally.

Upvotes: 0

Views: 8652

Answers (2)

Floern
Floern

Reputation: 33904

You could use the following code, to exclude all existing files (like index.php):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z_-]+).php$ http://www.domain.com/myfile.php?page=inc-$1.php [NC]

or to exclude only index.php you can use:

RewriteCond %{REQUEST_URI} !^(.*/)?index\.php$ [NC]
RewriteRule ^([a-zA-Z_-]+).php$ http://www.domain.com/myfile.php?page=inc-$1.php [NC]

Upvotes: 1

Leniency
Leniency

Reputation: 5024

I think this is what you're asking:

"I want to allow the index.php file to be served normally, but all other requests follow this rewrite..."

To keep the index file from being redirected, you need a RewriteCond before the rule:

RewriteCond $1 !index\.php
RewriteRule ^([a-zA-Z_-]+).php$ http://www.domain.com/myfile.php?page=inc-$1.php [NC]

Upvotes: 1

Related Questions