I'm trying to redirect my url:
www.site.com/dashboard/invest-package.php?packageID=1
to
www.site.com/dashboard/invest-package/1
Actually I solved this problem with -
<a href="invest-package-'.$row['packageID'].'">Invest</a>
RewriteRule ^invest-package-(.*)$ invest-package.php?packageID=$1 [QSA,L]
But I wanted to make with "/" don't like using "-". Solutions I found on the internet didn't work. I keep getting 404 not found error.
Here is my link to invest-package.php
<a href="invest-package/'.$row['packageID'].'">Invest</a>
and .htaccess file:
Options -Indexes
RewriteEngine On
RewriteBase /dashboard/
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^invest-package/(.*)$ invest-package.php?packageID=$1 [QSA,L]
You may try this code:
Options -Indexes -MultiViews
RewriteEngine On
RewriteBase /dashboard/
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^invest-package/([\w-]+)/?$ invest-package.php?packageID=$1 [QSA,L,NC]
It is important to turn off MultiViews i.e. the content negotiation service of Apache.
Option MultiViews (see http://httpd.apache.org/docs/2.4/content-negotiation.html) is used by Apache's content negotiation module that runs before mod_rewrite and makes Apache server match extensions of files. So if /file is the URL then Apache will serve /file.php without any GET parameters.