Technical Forum
Ask questions. Discover Answers.
cancel
Showing results for 
Search instead for 
Did you mean: 
Custom Alert Banner

Convert .htaccess rewrite rules to iRule

Walter_WorkAcct
Altostratus
Altostratus

Literally trying to copy this logic into an irule and struggling with the translation:

Is not a regular file:RewriteCond %{REQUEST_FILENAME} !-f
Is not a regular directory:RewriteCond %{REQUEST_FILENAME} !-d
Is not a favicon: RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
Rewrite the URL: RewriteRule (.+) index.php?p=$1 [QSA,L]

1 ACCEPTED SOLUTION

JRahm
Community Manager
Community Manager

Hi @Walter_WorkAcct...using the htaccess tester, here's a before/after example:

The first two rewrite conditions are apache specific for local implementation and should be fine to ignore, but ignoring the favicon needs to be addressed. This results in an iRule that could look something like this (untested, might need adjustment):

when HTTP_REQUEST {
  set uri [string tolower [HTTP::uri]]
  if { not (($uri ne "/favicon.ico") or [string match apple-touch-icon*.png $uri]) } {
    HTTP::uri /index.php?p=[string range $uri 1 end]
  }
}

 

View solution in original post

1 REPLY 1

JRahm
Community Manager
Community Manager

Hi @Walter_WorkAcct...using the htaccess tester, here's a before/after example:

The first two rewrite conditions are apache specific for local implementation and should be fine to ignore, but ignoring the favicon needs to be addressed. This results in an iRule that could look something like this (untested, might need adjustment):

when HTTP_REQUEST {
  set uri [string tolower [HTTP::uri]]
  if { not (($uri ne "/favicon.ico") or [string match apple-touch-icon*.png $uri]) } {
    HTTP::uri /index.php?p=[string range $uri 1 end]
  }
}