我希望rando.com/game/basic/1
指向rando.com/game.php?type=basic&id=1
。
到目前为止我所拥有的:
#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
这不起作用。我收到404错误。
任何帮助表示赞赏!谢谢!
答案 0 :(得分:1)
为什么不采用一些MVC框架的典型方式,只需修剪和修改像这样爆炸php中的url? :
在htaccess中重定向到game.php?url=$1
$url = rtrim($_GET['url'], '/'); // to prevent empty array values caused by trailing slash
$url = explode('/', $url);
你最终会输入$ url [0]中的类型和$ url [1]中的id。 如果您只接受数字和字母,您可以像这样编写htaccess行:
RewriteRule ^game/([a-zA-Z0-9/]+)$ /game.php?url=$1
答案 1 :(得分:1)
您的规则包含\$
,它会查找文字$
,而不是字符串的结尾。你想要这个:
RewriteRule ^game/([^/]+)/([^\.]+)$ /game.php?type=$1&id=$2