将子目录添加到不可见的 .htaccess URL 重写

Adding a subdirectory to an invisible .htaccess URL rewrite

我想在我的 url 中添加一个子目录,这样它会更容易阅读:

我想要的示例:
localhost/testwebsite/users.php?名字=约翰
应该变成
localhost/testwebsite/users/约翰

我尝试使用 .htaccess mod_rewrite 规则并得出以下结论:

RewriteEngine On
RewriteBase /testwebsite/
RewriteRule ^users/(.*)$ users.php?firstname=

为什么我使用该代码会发生什么:它成功地重定向了页面,它显示了正确用户的 html 并且它正确地处理了参数。然而,所有样式表、图像、脚本,以及任何具有相对路径的东西,都无法找到并以 404 消息响应,因为在新 url 中添加了额外的子目录,我估计。

我是不是做错了什么?我应该使用另一种技术吗?或者我应该简单地使我的项目中的所有路径相对于根目录是绝对的?

你做得对。浏览器不知道文件的实际路径不同。使用绝对路径或使路径相对于更易于阅读的 URL.