0

我的目录结构类似于:

public_html/
  example.com/
    index.php
    subdir/
      file.jpg

我正在使用共享主机,因此http://example.com映射到/public_html/它的根目录,我无法更改它。我添加了一个 mod_rewrite 规则来处理这个问题:

RewriteEngine On
RewriteRule ^$ example\.com/ [L]
RewriteRule (.*) example\.com/$1/ [L]

如果我浏览到http://example.com/subdir(没有尾随/),它将列出file.jpg,但它的 URL 将是http://example.com/file.jpg. 父目录链接是http://example.com/example.com/.

如果我浏览到http://example.com/subdir/(带有尾随的/),它将列出具有正确 URL 的file.jpghttp://example.com/subdir/file.jpg : 。但是,父目录链接是http://example.com/example.com/subdir/.

我对发生的事情感到非常困惑,我很想对此提供任何帮助。

(请注意,如果我取消了/mod_rewrite 规则中的最后一项,那么在http://example.com/subdir没有 的情况下/将重定向到http://example.com/example.com/subdir/变体。此外,列表的父目录http://example.com/subdir/更改为http://example.com/example.com/,这几乎是正确的。)

4

1 回答 1

1

这可能是由禁用的DirectorySlash引起的。所以尝试启用它或使用此规则对 mod_rewrite 执行相同操作:

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301]
于 2010-08-08T13:53:45.660 回答