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

Apache htaccess:获取不正确的引用路径,apache,.htaccess,mod-rewrite,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 首先,直到我在URL的末尾添加/,页面才起作用。其次,它没有加载js、css文件。为这些文件生成的路径类似于成本计算器/西雅图/js/jquery.min

我有以下目录结构

server_root/Project1/(all_files_including_.htaccess)
我写了以下规则

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

cost-calculator.php?in=seattle
首先,直到我在URL的末尾添加
/
,页面才起作用。其次,它没有加载js、css文件。为这些文件生成的路径类似于
成本计算器/西雅图/js/jquery.min.js
。为什么
css/
js/
文件的前缀是
cost calculator/settle


怎么了?

对于第一个问题:您的重写规则中有一个尾随斜杠,只有在url中有尾随斜杠时,它才会匹配。尝试使用询问标记将斜杠设置为可选:
([a-z]+)/?$


关于第二个问题:页面似乎包含“js/jquery.min.js”。此url相对于当前页面,完整路径由浏览器解析。当您在“/cost calculator/seattle/”上时,完整路径将是“/cost calculator/seattle/js/jquery.min.js”。最简单的解决方法是为CSS/JS资源提供完整的路径:<代码> SRC=“/Pult/Poto/JS/jQuery .min .js”< /C>>/P>> P>始终考虑使用绝对路径(<代码> /文件/路径< />代码>或完整地址>代码>http://the/file/path)。不要偷懒,更改资源中的相对URI。这是最好的


请参考此处回答的问题,

谢谢您的回答。关于第一个问题,一般来说,我将此应用于删除扩展的规则
RewriteRule^([^\.]+)/?$$1.php[NC,L]
,但在这里,当我添加
/
时,我仍然收到404个错误,斜杠需要从模式中排除,请尝试
^([^\./]+)/?$