.htaccess重写 - 具有多级目录的URL

时间:2011-10-10 13:49:58

标签: .htaccess mod-rewrite url-rewriting

我有一个页面deals.php,它放在根目录下,由多个目录级别的内部URL访问。例如,以下网址都会访问此页面。

http://domain/flights/asia/bangkok
http://domain/flights/bangkok

我在.htaccess中使用此代码重定向到deals.php

    Options +FollowSymlinks
    RewriteEngine on

    RewriteRule ^flights/asia/([^/]+)/?$ deals.php?country=$1 [NC]
    RewriteRule ^flights/([^/]+)/?$ deals.php?country=$1 [NC]

现在问题出现在deals.php上,所有图片,脚本和样式表文件都无法正常打开。如果我尝试通过在所有图像,脚本和CSS的地址中放置../../来修复它,它不适用于其他URL。

如何解决这个问题?有什么选择?

2 个答案:

答案 0 :(得分:1)

简单:不要在任何资源的链接中使用../(images / css / js / etc) - 始终使用相对于WEBSITE ROOT - 当你处理好/非真实/重写的URL时这是一个“要求”,因为这样的URL很少指向物理文件位置。

假设您有一个位于http://www.example.com/images/logo.png的徽标。

现在,而不是../images/logo.png和/或../../images/logo.png始终使用/images/logo.png

答案 1 :(得分:0)

我认为你想要的是在html页面放置一个baseurl,所以所有的相对路径都与baseurl相关,而不是导航栏中的当前URL