【发布时间】:2013-02-28 00:12:06
【问题描述】:
过去我曾通过 Google 使用过该网站几次,并找到了解决问题的有用帮助。现在我想问我自己的问题并因此注册。所以,“大家好!”
我的“问题”涉及 htaccess-rewriterule 和 PHP/HTML。 假设我有一个 URL“http://www.mydomain.com/showdata.php?ID=9”,我想重写为“http://www.mydomain.com/person/firstname-lastname-9.php”。我的计划是“人”只是一个虚拟目录。 重写部分没问题:
RewriteRule ^person/(.*)-(\d+)\.php$ /showdata.php?ID=$2
新 URL 指向 MySQL 数据库中的正确条目。问题是 CSS 文件没有被加载,并且导航中的所有链接都指向“person”文件夹。 我以为我可以“链接”到一个虚拟文件夹,因为 htaccess 会将浏览器引导到服务器上的真实文件。我实际上可以创建文件夹“person”并在其中复制包含文件,但这意味着我必须在源代码中更改很多路径。这是很多凌乱的工作,我宁愿避免这样做。 有没有办法拥有一个虚拟文件夹(用于关键字),但仍然让 php 脚本包含主文件夹中的文件?
【问题讨论】:
-
为什么不直接重写为showdata.php?所以用户看到
http://www.mydomain.com/person/firstname-lastname-9,但服务器看到http://www.mydomain.com/showdata.php?ID=9 -
你在找
<base href=..> -
我有带有锚链接的页面,但我读到
不能很好地使用锚。 -
好的,我做了一个妥协:我使用了
标签并移除了 3 个锚点。
标签: php .htaccess mod-rewrite