0

我需要问一些关于 htaccess 重定向的问题。我知道有很多关于 htaccess、重写和漂亮的个人资料 url 的问题,但我从来没有找到我的问题的真正答案,我希望能在你的帮助下找到。

如您所知,那个漂亮的 url 规则就像将“mydomain.com/profile.php?username=myuser”更改为“mydomain.com/myuser”一样。

但是假设我的登录网址有一个重写规则:www.mydomain.com/login

这意味着如果用户尝试使用与“登录”完全相同的用户名,您将如何处理重写时可能出现的冲突?

实际上可能的解决方案可能是最小字符限制,例如最少 6 个字符,但它看起来并不优雅,因为您放弃了使用超过 6 个字符的选项,例如“/resetpassword”。

当用户选择用户名时,“禁止词”类型的数组控件可能是一种解决方案,但是您需要预见不应该使用的所有可能性。

许多大型网站都使用这种重写方法。特别是 Facebook 同时对页面和用户使用“/username”类型的规则。

无论如何,如果有人知道这种 url 重定向/重写规则背后的魔力是什么,请帮助我:)

谢谢

PS:我知道还有另一种解决方案,例如“/user/username”,但现在直接指向基本 url 并缩短完整 url 越来越流行,我只需要了解这方面的可能性。

4

2 回答 2

1

为什么不在站点的根目录中有一个登录子目录,其中包含用于登录用户的相关文件?这样,你的 htaccess 文件中的重写规则只需要处理整个用户重定向的东西。

于 2012-09-13T23:08:24.833 回答
0

你正在寻找的是一种叫做“路线”的东西。它们通常由 MVC 框架实现,例如 Zend Framework、Symfony 的 CakePHP。

他们本质上所做的是将每个请求转发到某个 index.php,该 index.php 反过来会计算出$_SERVER['REQUEST_URI']应该从哪些 PHP 文件处理请求。

我不建议通过 PHP 将重写规则放入您的 .htaccess 文件中。相反,尝试进入 PHP 框架。他们为你做艰苦的工作。

就个人而言,我使用 Zend 框架。但我不会向初学者推荐新版本 2。试试ZF1。它实际上很容易进入。

于 2012-09-13T23:04:21.863 回答