如何使用.htaccess更改url外观,但保留php功能



我正在努力学习,所以请友善一点。我的网站是数据库驱动的,使用ID号生成页面。我希望URL不显示身份证号码,而是显示页面名称。有没有一种方法可以做到这一点,它只是化妆品,不会影响网站?我也很可能把我写重定向的方式搞砸了,因为它似乎根本不起作用?我做错了什么?非常感谢。

这就是我的URL现在的样子:

http://mydomainname.com/index.php?id=35-Entertainment

我希望它看起来像这样:

http://mydomainname.com/Entertainment

RewriteEngine On
RewriteRule ^([^/d]+)/?$ index.php?id=$1 [L,QSA]

不幸的是,没有办法做到这一点。

这种情况下的过程如下:

  1. 用户输入一个url。在这种情况下,您需要一个格式良好的URL(http://mydomainname.com/Entertainment)
  2. 用户将此url发送到您的服务器
  3. Apache处理url,并根据url中使用的域将其指向您的项目目录
  4. 在那里,Apache使用htaccess来查看下一步要做什么。在这种情况下,最好的方法很可能是使用RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]或类似的东西
  5. 然后你需要在你的应用程序中进行路由。例如,您可以使用路由表将格式良好的段塞映射到模块/id组合

Apache无法完成此过程,因为它不知道数据库中存在的内容。

希望这对你有任何帮助。

最新更新