任何人都可以解释我如何做url重写

时间:2013-11-28 11:27:51

标签: php html

我正在尝试创建一个论坛,其中有人拥有自己的帐户,而我似乎并不理解这个概念。

在我们创建以用户命名的文件之后,我们是否创建了一个新的PHP文件并将所有代码写入其中,或者是其他内容。

我无法理解它。

3 个答案:

答案 0 :(得分:2)

您想要的是数据库和URL重写的组合。

<强>数据库

数据库用于存储大量数据。如果您使用的是MySQL之类的数据库,则可以从PHP获取并将数据放入数据库中。 (这可能是最容易学习的内容)有许多指南可用于连接数据库以及获取和放入数据。你解决的问题是,你不需要为每个用户都有一个PHP文件,你只需要一个,并且在其中,你不存储来自用户的任何数据,你只是与数据库进行交互。 / p>

快速谷歌搜索应该弹出数千条关于如何连接MySQL数据库的指南。请确保您遵循使用MySQLi或PDO的指南,这两个驱动程序比标准MySQL驱动程序好很多。 (您将看到函数的不同,使用MySQLi,您将拥有名为mysqli_connect()的函数。我之所以说这是因为在最新版本的PHP中不推荐使用MySQL驱动程序,并且它具有一些安全性使用MySQLi或PDO可以轻松避免的问题。

网址重写

要让您的网址像http://www.example.com/user/deniz_zoeteman,甚至http://www.example.com/deniz_zoeteman一样简单,您需要进行网址重写。现在这在很大程度上取决于您使用的是哪种Web服务器,但如果您与托管公司合作,那么很有可能它将成为Apache。您可以在配置文件中使用类似这样的示例:

RewriteEngine on
RewriteRule ^/(.*)$ /user.php?user=$1 [L] 

有很多关于URL重写的指南,例如this一个。如果您使用上面的示例,您可以获取在PHP中放入URL的用户名,如下所示:

$username = $_GET['user'];

答案 1 :(得分:1)

您正在寻找database。您不需要为每个用户编写一个php文件,而是需要一个php文件从数据库中获取所需的信息并显示它们。

请记住,每次你复制代码时,都会出现严重错误,你应该退一步找到更好的解决方案。数据库允许您执行所需的操作。

答案 2 :(得分:1)

在虚拟主机或.htaccess文件中使用mod_rewrite,您可以执行以下操作:

RewriteEngine On
RewriteRule ^([^/]*)$ /index.php?page=$1 [L]

哪会将http://abcde.com/index.php?page=aviyankhadka重写为http://abcde.com/aviyankhadka

要帮助生成RewriteRule,请查看here

顺便说一下,这个答案假设您通过索引文件路由请求。