Htaccess / rewriterrule和虚拟文件夹


htaccess/rewriterule and virtual folder

过去我通过Google使用过这个网站几次,发现对问题有很有用的帮助。现在我想问我自己的问题,因此注册。所以,"大家好!"

我的"问题"涉及htaccess-rewriterule和PHP/HTML。假设我有一个URL"http://www.mydomain.com/showdata.php?ID=9",我想把它重写为"http://www.mydomain.com/person/firstname-lastname-9.php"。我的计划是,"人"只是一个虚拟目录。rewriterrule部分没有问题:

RewriteRule ^person/(.*)-('d+)'.php$ /showdata.php?ID=$2

新的URL指向mysql数据库中的正确条目。问题是CSS文件没有被加载,导航中的所有链接都指向"person"文件夹。我认为我可以"链接"到一个虚拟文件夹,因为htaccess会将浏览器引导到服务器上的真实文件。实际上,我可以创建文件夹"person"并复制其中的包含文件,但这意味着我必须更改源代码中的许多路径。那是一大堆麻烦的工作,我宁愿避免。是否有一种方法,有一个虚拟文件夹(关键字),但仍然有php脚本包括文件从主文件夹?

为css,js和images添加更多规则…

我假设你的css/js/images文件夹名为"css", "js", "images"

RewriteRule (.*)/(images|css|js)/(.*) /$1/$2 [L]
# | means OR  , [L] means last rule i.e. do not continue to process other rules after this.