使用 mysql 数据库的 zend 自定义路由器
我正在考虑编写一个应用程序,该应用程序需要许多页面的搜索引擎友好的 URL。例如,访问 site.com/blah 可以是用户或页面。为此,我正在考虑建立一个表,其中包含 URL,然后有一列包含控制器、操作和任何参数(例如页面或用户的 ID)。
我知道数据库查找可能会很慢,所以我想知道这是否是解决问题的最佳方法?
I am looking at writing a application that requires search engine friendly URLs for a lot of pages. So for example to access say site.com/blah could be a user or a page. For this I was thinking of having a table where I have the URL and then I have a column with the controller, action and any parameters such as id of a page or a user.
I know a db look-up can be slow so I am wondering if this is the best way of going about things?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果必须对两个不同的控制器/操作使用相同的路由 URL (site.com/blah),唯一的方法是使用数据库查找。当新用户注册时,将用户名和用户 ID 存储在数据库中,并将该用户名的路由类型存储为“用户”。创建新页面时,将页面名称和页面 ID 存储在数据库中,并将路由类型存储为“Page”。
当请求 URL 时,根据数据库检查名称并获取路由类型并相应转发。
If you have to use the same route URL (site.com/blah) for two different controller/action, the only way is to use database lookup. When a new user signs up, store the username and the user ID in the database and the route type to 'User' for this username. When a new page is created, store the page name and the page ID in the database and the route type to 'Page'.
When a URL is requested, check the name against the database and get the route type and forward accordingly.