0

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.

Leniency
  • 4,984
  • 28
  • 36
Ajay_Kumar
  • 1,381
  • 10
  • 34
  • 62

2 Answers2

1

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]
Floern
  • 33,559
  • 24
  • 104
  • 119
1

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]
Leniency
  • 4,984
  • 28
  • 36