mod_rewrite图像问题

时间:2011-08-03 22:30:32

标签: image .htaccess mod-rewrite

我目前在.htaccess中有这个:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^page/(.*)/(.*)$ /type1/internal.php?parentFolders=$1&pageTitleID=$2 [L]

当我访问http://localhost/type1/page/home/play时,它工作正常,但我希望/page/取出http://localhost/type1/home/play

我尝试了以下内容:

RewriteRule ^(.*)/(.*)$ /type1/internal.php?parentFolders=$1&pageTitleID=$2 [L]
然而,有些图像似乎消失了,有些则没有。

此外,我发现导航中的硬链接不起作用,因为他们要求内部页面中使用的变量。

我不确定这是绝对/相对问题,因为我的CSS写成

<link href="http://localhost/type1/global.css" rel="stylesheet" type="text/css" /> 

当我用浏览器检查链接时链接似乎是完整的链接!?

任何帮助都会很棒

1 个答案:

答案 0 :(得分:1)

据我所知,.htaccess文件位于/type1/子文件夹中。试试这些规则:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/(.*)$ /type1/internal.php?parentFolders=$1&pageTitleID=$2 [L,QSA]
  1. 您使用的(.*)模式对于第一个参数来说过于宽泛,我使用([^/]+)代替(除了斜杠之外的任何字符)。

  2. 添加了2个重写条件..因此只会重写对不存在的文件和文件夹的请求。这应该有助于消失的图像(或者可能不会 - 这完全取决于链接的编写方式)。

  3. 添加了QSA标记以保留任何现有查询字符串。