Question

Remove parameter in URL with .htaccess

Posted January 7, 2022 104 views
Apache

Hello Community,

I’m again trying to do some stuff with .htaccess and for some reason am not able to.

I want to remove a parameter from my URL. Let me give you an example, let’s say I have something in the lines of MyDomain.com/index.php?band=brend, I want to make it look like this MyDomain.com/brend.

I’ve tried a couple of options and so far managed to remove the extention from the link but to that extend.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
1 answer

Hi @brendRos,

Nice seeing you again!

So, I think a redirect like the following should work:

RewriteEngine ON
RewriteCond %{THE_REQUEST} \s/index\.php\?band=(\S+)\s [NC]
RewriteRule ^ /%1? [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/?$ index.php?band=$1 [QSA,L]

Also, just a quick note, you’ll need to pass your argument to index.php in the backend to make use of them but I’m sure you already know that.

  • Yep, it worked as it’s suppose to!

    Thank you.

    Just have a quick question, where should I put the 301 rules that are inside my application and those going to outside sources?

    • Hi @brendRos,

      Glad to hear that.

      So it really depends on what the rules are but basically, you should put the 301 redirects that lead to external resources maybe before the first RewriteRule unless they need the removal of the index.php.

      As for the internal, maybe before the second RewriteCond.