我正在编写一个网站,该网站在 mysql_database 中存储了大量用户,其中每个用户都有一个 ID 和个人资料名称(如 jim.button.1)以及其他字段。我想要一个具有以下结构的网址(通过例如用户 ID 上的 mysql_select 获取配置文件):www.mysite.com/jim.button.1
现在我知道我可以用 mod_rewrite_rule 做到这一点,但是如果有成千上万的用户,我会得到一个非常大的 .htaccess 文件。顺便说一下,我目前还不是 mod 重写方面的专家,但我了解它是如何工作的。
有没有办法做到这一点,比如在一个或两个 mod_rewrite_rules 中,或者是否有另一种聪明的方法来完成这个?
欢迎所有帮助。
最佳答案
您可以重写所有未映射到现有文件的 URL,使用:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
然后通过 $_SERVER['REQUEST_URI']
获取实际的 URL。这是一个例子:
$parts = parse_url($_SERVER['REQUEST_URI']);
$user = $parts['path'];
参见 https://github.com/zendframework/ZendSkeletonApplication/blob/master/public/.htaccess举个例子。
关于php - 通过 mod-rewrite 创建数千个 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12865675/