Reputation: 927
I want rando.com/game/basic/1
to point towards rando.com/game.php?type=basic&id=1
.
What I have so far:
#Fix Rewrite
Options -Multiviews
# Mod Rewrite
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^game/([^/]+)/([^\.]+)\$ /game.php?type=$1&id=$2
This isn't working. I get a 404 error.
Any help is appreciated! Thanks!
Upvotes: 0
Views: 150
Reputation: 44823
Your rule contains \$
, which looks for a literal $
, rather than the end of the string. You want this:
RewriteRule ^game/([^/]+)/([^\.]+)$ /game.php?type=$1&id=$2
Upvotes: 1
Reputation: 1159
Why not just go the typical way that some MVC frameworks do and just trim & explode the url in php like so? :
in htaccess redirect to just game.php?url=$1
$url = rtrim($_GET['url'], '/'); // to prevent empty array values caused by trailing slash
$url = explode('/', $url);
You would end up with type in $url[0] and id in $url[1]. If you're going to accept only numbers and letters you could write that htaccess line like so:
RewriteRule ^game/([a-zA-Z0-9/]+)$ /game.php?url=$1
Upvotes: 1