How to exclude a specific file in htaccess

2020-03-31 05:57发布

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.

标签: .htaccess
2条回答
别忘想泡老子
2楼-- · 2020-03-31 06:20

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]
查看更多
Evening l夕情丶
3楼-- · 2020-03-31 06:38

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]
查看更多
登录 后发表回答