Home > Blockchain >  htaccess to exclude a specific directory
htaccess to exclude a specific directory

Time:09-17

I have a htaccess at the root of my site like this:

RewriteEngine On

RewriteRule \.php$ - [L,NC]

RewriteRule ^(?:favicon\.ico|(?:index|custom500|custom404)\.html)$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .  index.php?source=$0 [L,QSA]

I want it to ignore those urls that contain a specific folder folder1. Urls will be like:

https://mycooldomain.com/folder1/api/rest/... //something else here

I have examined this question but I seem not able to apply it to my situation.

CodePudding user response:

Have it like this:

RewriteEngine On

# ignore request URLs that start with /folder1/
RewriteCond %{THE_REQUEST} \s/ folder1/ [NC]
RewriteRule ^ - [L]

RewriteRule \.php$ - [L,NC]

RewriteRule ^(?:favicon\.ico|(?:index|custom500|custom404)\.html)$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .  index.php?source=$0 [L,QSA]

CodePudding user response:

Alternative to @anubhava's answer... the only rule that needs to be ignored in your .htaccess file is the last one. So you could just add a condition to that last rule to exclude URL-paths that start /folder1/.

For example:

RewriteCond %{REQUEST_URI} !^/folder1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .  index.php?source=$0 [L,QSA]

The ! prefix on !^/folder1/ negates the regex, so it is successful when it does not match. ie. when the URL-path does not start with /folder1/.

  • Related