htaccess:获取不正确的引用路径

时间:2015-04-05 08:01:13

标签: apache .htaccess mod-rewrite

我有以下目录结构

server_root/Project1/(all_files_including_.htaccess)

我写了以下规则

RewriteRule ^cost-calculator/([a-z]+)/$ cost-calculator.php?in=$1

页面

cost-calculator.php?in=seattle

首先,在我在网址末尾添加/之前,页面无效。其次,它没有加载js,css文件。为这些文件生成的路径类似于cost-calculator/seattle/js/jquery.min.js。为什么cost-calculator/seattlecss/js/文件添加了前缀?

怎么了?

2 个答案:

答案 0 :(得分:1)

对于第一个问题:你的RewriteRule中有一个尾部斜杠,只有在你的网址中 一个尾部斜杠时才会匹配。尝试使用询问标记将斜杠设置为可选:([a-z]+)/?$

对于你的第二个问题:看起来该页面包含" js / jquery.min.js"。此URL与当前页面相关,浏览器将解析完整路径。当你在" / cost-calculator / seattle /"时,完整路径将是" /cost-calculator/seattle/js/jquery.min.js"。最简单的解决方法是为您的css / js资源提供完整路径:src="/full/path/to/js/jquery.min.js"

答案 1 :(得分:1)

始终考虑使用绝对路径(/the/file/path或完整地址,例如http://the/file/path)。不要懒惰并在您的资源中更改您的相对URI。这是最好的。

请在此处参阅已解答的问题,URL rewriting : css, js, and images not loading