帮助mod_rewrite

时间:2011-01-24 03:15:08

标签: html apache mod-rewrite

好吧,所以最近我一直在搞乱mod_rewrite试图让它在网站上工作我正在努力使网站对非程序员更有吸引力到目前为止我有。

Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /newstuff
RewriteRule ^page/([0-9]+)/option/([0-9]+)?$ page.php?loc=$1&option=$2

当我去页面页面/ 3 /选项/ 3没有我的css文件或任何加载我知道它因为我现在在不同的目录但是无论如何我可以让它工作而不必调整所有我的文件正在加载?

4 个答案:

答案 0 :(得分:0)

不,您必须停止使用相对于旧网址的路径。最好从未来开始计划:始终使用相对于站点URL的路径(/css/file.css将指向同一个地方,无论您身在何处)或使用绝对URL文件。

答案 1 :(得分:0)

浏览器会对这些文件发出请求,而不是您的服务器,因此,正如您所猜测的那样,它正在查看这些目录。

在执行此类操作时通常最安全,将图像和源文件的URL指向相对于域名(“/ images / ...”而不是“images / ...”)。

或者,您可以编写更多重写规则,使用... / images / ...重定向任何内容以指向您的images目录,但如果您这样做,则会丢失缓存和许多其他有用的东西。< / p>

作为旁注,通常情况下更好的是不直接编码图像目录,而是使用一些值为$ IMAGE_DIR的配置文件,然后如果你改变了东西,你只需要更新一个的地方。

答案 2 :(得分:0)

我们可以看到您要链接的CSS文件的网址吗?我很乐意看到他们。 这是让你开始的东西:

RewriteRule ^page/[0-9]+/option/[0-9]*/([^\.]+)\.css$ /newstuff/$1.css

但是,如果您的css位于文档根目录或文档根目录中的文件夹中,那么将所有链接从css更改为/ css或/ newstuff / css会更容易。
作为一种良好做法,请始终使用相对于文档根目录的URL,以避免重写问题。

答案 3 :(得分:0)

我最终得到了所有排序它只是我用于所有文件css,图像等的路径。我从来没有使用过mod重写,所以它的所有类型都是新的。我也没有总是使用相对URL这是坏的,我肯定会停止这样做。这是网站 www.imstillreallybored.com/newstuff

这是一个为我的高中做的网站我实际上重做了很多后端的php把它变成了面向对象的类,因为很多我调用/得到的东西如文章会很容易通过函数调用并传递变量。