【发布时间】:2015-12-02 23:01:15
【问题描述】:
This post 概述了如何使用 RewriteCond 正确地提供图像、js 和 css 文件。但是,这是我的 .htaccess 文件(放置在服务器根目录下的目录中,该目录始终包含在网站的 http 链接中)(请注意,我的问题可能与 this other post 有关,但更具体):
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ index.php?lang=$1&menu1=$2&menu2=$3 [QSA,NC,L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?lang=$1&menu1=$2 [QSA,NC,L]
RewriteRule ^([^/]+)/?$ index.php?lang=$1 [QSA,NC,L]
结果是 PHP 页面 index.php 始终服务良好(重写工作正常)。现在,我认为这些行:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
意味着,如果我们提供的不是 PHP 文件,那么就不要处理 RewriteRule 的文件或目录。我错了吗?为什么这两行不起作用?
我尝试在前面添加以下行:
RewriteCond %{REQUEST_URI} !\.(gif|jpg|png|ico|css|js)$ [QSA,NC,L]
但它不起作用(当我尝试检索根文档时,我收到 HTTP 500 内部服务器错误)。
【问题讨论】:
-
不就是对样式表和图片的相对资源引用吗?还是您的日志表明请求路径已被重写?
-
但是您正在提供一个 php 文件...它被称为
index.php至少您的 .htaccess 代码显示的内容如此。有什么问题? -
是的,我正在提供一个包含或引用其他所有内容的文件 index.php:PHP 文件引用了 /css/style.cs 和 js/jquery.js 文件,但这些文件正在被重写,而且我不明白前两个 RewriteCods 在我的 .htaccess 文件中做了什么以及我是否需要它们,因为到目前为止它们似乎没有任何区别。谢谢。
-
我认为您的问题尚未在 unix.stackexchange.com 上结束。
标签: javascript php css .htaccess mod-rewrite