mod_rewrite后目录路径似乎无法正常工作?

时间:2014-01-02 11:52:56

标签: apache .htaccess mod-rewrite

我将index.php和.htaccess放在localhost / domain / us目录下。 在.htaccess中,我有

Options -Indexes 
RewriteEngine On
RewriteRule ^/?([a-zA-Z_]+)$ index.php [L] 
RewriteRule ^/?([a-zA-Z_]+)/([a-zA-Z_]+)$ index.php [L] 

当我输入url“localhost / domain / us / aaa”时,我正确地获得了index.php。 但是当我输入“localhost / domain / us / aaa / bbb”时,我可以访问index.php页面,但它已经搞砸了。所有的CSS文件似乎都不起作用,图像出现了。

在index.php中,我使用了

<link rel="stylesheet" href="css/bt.css" type="text/css" media="screen" /> 

<img src="logo/pic.gif" width="50" alt="logo">

logo和css都是localhost / domain / us下的文件夹。 为什么目录路径不能正常工作?

2 个答案:

答案 0 :(得分:0)

您的css和徽标使用相对路径引用。这意味着当您访问localhost / domain / us / aaa / bbb页面时,浏览器将尝试从localhost / domain / us / aaa / css / bt.css和localhost / domain / us / aaa下载css和徽标/logo/pic.gif网址。

因此,您可以在引用中使用绝对路径,也可以向.htaccess添加新规则以捕获css和徽标文件夹。例如。对于徽标文件夹:

RewriteRule /?(logo/.*)$ $1 [L]

答案 1 :(得分:0)

好的,现在你已经遇到了人们在切换到漂亮的URL方案时遇到的最常见的问题:P解决方案也很简单,只需在你的css,js,images文件而不是相对文件中使用绝对路径。这意味着您必须确保这些文件的路径以http://或斜杠/开头。

对于您的情况,请使用此:

<link rel="stylesheet" href="/css/bt.css" type="text/css" media="screen" /> 

<img src="/logo/pic.gif" width="50" alt="logo">