Apache Mod_Rewrite似乎导致Javascript重载

时间:2014-02-18 16:31:31

标签: apache .htaccess mod-rewrite

我正在为我正在开发的应用程序设置URL重写规则,以便我可以使用漂亮干净的URL。我希望网址看起来像http://app.com/page/agency/,并且等同于http://app.com/index.php?p=page&agency=agency。代理商选择器是可选的,因此我希望URL重定向,即使该代理商不存在。我为此创建了以下mod_rewrite规则:

RewriteRule ^/?([a-z]+)/$ /index.php?p=$1 [PT]
RewriteRule ^/?([a-z]+)/([a-z]+)/$ /index.php?p=$1&agency=$2 [PT]

这适用于重定向页面。但是,在我看来,我的javascript文件正在重新加载每个页面,就像浏览器认为它在不同的目录中并需要重新加载JS文件一样。 JS文件使用硬编码的URL链接,例如http://app.com/scripts/dostuff.js

浏览器每次都可能重新加载javascript文件吗?如果是这样,我做错了吗?

1 个答案:

答案 0 :(得分:1)

试试这段代码:

RewriteEngine On

# skip rewrite rules below it is a valid file or a valid directory
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# write single path
RewriteRule ^([a-z]+)/?$ /index.php?p=$1 [L,QSA]

# write 2 paths
RewriteRule ^([a-z]+)/([a-z]+)/?$ /index.php?p=$1&agency=$2 [L,QSA]
相关问题