子文件夹中子文件夹的Mod重写

时间:2012-08-29 09:08:17

标签: mod-rewrite subdirectory

这是我在网络服务器上的文件结构:

DOCUMENT_ROOT/
  foo/
    www/
    .htaccess
  bar/
  index.php

如果我想将所有内容从 www.myserver.com/foo/www/ 重定向到 www,我应该写给 foo / .htaccess 。 myserver.com/foo /

我试过了:

RewriteEngine On
RewriteRule ^(.*)$ /www/$1 [L,NE]

但始终显示错误404。我尝试使用RewriteBase也没有成功。

非常感谢

P.S。当 www / .htaccess 在DOCUMENT_ROOT中时,它可以正常工作。但是当我把它们放到子文件夹中时,总是得到错误404: - (

1 个答案:

答案 0 :(得分:2)

  

是的,我想转到http://www.myserver.com/foo/并获取/foo/www

中的内容

如果您的htaccess文件位于/foo/www,这将永远不会有效,因为除非请求是/foo/www内的内容,否则它不会生效。请求仅为/foo,因此忽略.htaccess文件。您需要将htaccess文件移动到文档根目录,将其更改为:

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/foo/www
RewriteRule ^foo/(.*)$ /foo/www/$1 [L]

或将其移至/foo目录,将其更改为:

RewriteEngine On
RewriteBase /foo
RewriteCond %{REQUEST_URI} !^/foo/www
RewriteRule ^(.*)$ www/$1 [L]