modrewrite规则诱骗apache相信PHP是一个JS

时间:2013-02-18 14:22:07

标签: apache mod-rewrite

在我的一个外部JS文件中,如果可以从URL获取php变量,那么可以更容易地编写一些代码。出于这个原因,我尝试编辑.htaccess文件,以便header.php可以读作header.js。

# Header.php into header.js
RewriteRule ^js/header.php$ js/header.js

但是,当我将以下内容放在我的文档的头部时,Chrome的javascript控制台说它发现了404错误并且无法加载该文件。

 <script type="text/javascript" src="/js/header.js?url=<?php echo $url; ?>"></script>

我认为这是一秒钟,这是因为传递了GET变量 在查询字符串中。但是,当我在浏览器中找到here查看header.js文件时,它显示404错误...让我相信modrewrite规则无法正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

正如您所写,RewriteRule期望从浏览器调用URL /js/header.php,并将其重写为/js/header.js。这与你想要的相反。试试这个:

RewriteRule ^js/header.js$ /js/header.php [L]

请注意,我还在重写路径的开头添加了斜杠 - 这取决于上下文,但您可能需要它。