Home > Net >  htaccess RewriteUrl parameters not checked
htaccess RewriteUrl parameters not checked

Time:03-23

I need to rewrite url:

mydomain.com/index.php -> mydomain.com

I tried to use:

RewriteRule ^index.php$ /$1 [R=301,L]

The problem - using this url rewrite mydomain.com/index.php? (take a look at a question mark at the end) is redirected too. Need to rewrite url just for exact match of mydomain.com/index.php without nothing added at the end (parameters etc).

Complementary explanation:

mydomain.com/index.php?abc dont have to be rewritten

just mydomain.com/index.php -> mydomain.com

CodePudding user response:

You can do this using a RewriteCond with THE_REQUEST:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/ index\.php\s [NC]
RewriteRule ^ / [L,R=302]

Once you verify it is working fine, replace R=302 to R=301. Avoid using R=301 (Permanent Redirect) while testing your mod_rewrite rules.

THE_REQUEST variable represents original request received by Apache from your browser and it doesn't get overwritten after execution of other rewrite directives. Example value of this variable is GET /index.php?id=123 HTTP/1.1

  • Related