【发布时间】:2010-03-29 14:21:18
【问题描述】:
我正在使用 mod rewrite 将所有针对不存在的文件/目录的请求重定向到 index.php?url=*
这肯定是你用 mod_rewrite 做的最常见的事情,但我有一个问题:
当然,如果页面 url 是“mydomain.com/blog/view/1”,浏览器将在“虚拟”目录“mydomain.com/blog/view/”中查找图像、样式表和相关链接。
问题 1:
使用基本标签是最好的解决方案吗?不过,我发现没有一个 PHP 框架使用 base 标记。
我目前正在使用正则表达式替换所有相对链接以在输出之前指向正确的路径。这“好吗”?
问题 2:
服务器可能不支持 mod_rewrite。但是,所有公共文件,如图像、样式表和请求收集器 index.php 都位于目录 /myapp/public 中。通常 mod_rewrite 将所有请求指向/public,因此看起来好像 public 实际上是所有用户的根目录。
但是,如果没有 mod_rewrite,我必须使用 header() 调用从根目录将用户指向 /public。这意味着,然而,所有链接都会再次断开,因为突然所有图像等都必须通过/public/myimage.jpg调用
附加信息:当没有 mod_rewrite 时,上述请求将如下所示:mydomain.com/public/index.php/blog/view/1
- 这两个问题的最佳解决方案是什么?
编辑/附加问题:
有没有办法使用纯 htaccess 代码制作 /public/ 基本目录?
【问题讨论】:
标签: php apache design-patterns mod-rewrite