gpt4 book ai didi

.htaccess - htaccess url 重写/重定向 - 就像 facebook 一样

转载 作者:行者123 更新时间:2023-12-01 08:35:33 26 4
gpt4 key购买 nike

我有一个类似 www.example.com/mypage.php?id=324

的网址

这个数字324是自动递增的(意味着这个人是网站的第324个用户),每个用户都可以设置自己的用户url,存储在mysql表中(仅限字母数字)。

假设用户号 324 的用户 url 为“peter”

我正在尝试将 mypage.php?id=324 替换为 peter,因此 url 可以显示为 www.example.com/peter

但我仍然想在内部维护 mypage.php?id=324,所以如果有人键入 www.example.com/mypage.php?id=324,它可以被重定向到 www.example.com/peter

我猜这是像 facebook 一样的虚荣网址?

我搜索了整个网络,甚至还买了一本关于 htaccess 的书,但我仍然无法弄清楚这一点。请帮我!提前非常感谢您!

最佳答案

URL重写一步一步...

第 1 步 - 决定您希望客户端 URL 的外观

您已经完成了这部分 - 您希望 example.com/peter 成为您的用户所看到的

第 2 步 - 计算服务器端 URL

从技术上讲,您可以生成大量硬编码的重写规则,例如

RewriteRule ^peter$ mypage.php?id=324
RewriteRule ^alice$ mypage.php?id=325
RewriteRule ^bob$ mypage.php?id=326

但是当你有很多用户时,这并不是特别有效。

您的 mypage.php 将接受一个 id,但您确实需要对其进行修改,以便它可以接受一个可能的用户名(但假设它会包含各种垃圾)。假设您决定允许它采用另一个查询字符串参数“提示”。所以现在你必须得到一个这样的 URL:example.com/mypage.php?hint=peter

确保您的脚本为它不理解的任何用户名生成 404 响应。

第 3 步 - 将客户端 URL 映射到服务器端 URL 的产品重写规则

这样做的一种方法是这样的 - 第一个 RewriteCond行确保仅在请求与实际文件不匹配时触发规则。 RewriteRule将导致请求由 mypage.php 处理,但将 URL 的其余部分作为“提示”参数传递。 'qsa' 部分是 'query string append' 的缩写,这意味着原始 URL 中存在的任何查询字符串都将添加到书面规则中。 “l”表示“最后一个”,因此不会调用进一步的规则来处理此请求。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]+)$ mypage.php?hint=$1 [qsa, l]

在 mypage.php 中,您将使用提示查找用户。

请注意,我对模式的限制非常严格,只允许使用小写字母序列。这将有助于确保您的脚本不会为您的网站可能产生的每一个 404 调用。

关于.htaccess - htaccess url 重写/重定向 - 就像 facebook 一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11167871/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com