【问题标题】:Mod rewrite for subfolder in subfolderMod重写子文件夹中的子文件夹
【发布时间】:2012-08-23 20:30:27
【问题描述】:

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

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

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

我试过这个:

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

但始终显示错误 404。我尝试使用 RewriteBase 进行详细说明也没有成功。

非常感谢

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

【问题讨论】:

  • 所以你想去http://www.myserver.com/foo/ 并获得/foo/www 中的东西?
  • RewriteBase /foo/ 没用?
  • 是的,我想去http://www.myserver.com/foo/ 获取/foo/www 中的东西。
  • 不,RewriteBase /foo/ 没有用。我在网络服务器上尝试过,也在我的本地主机(XAMPP)上尝试过。

标签: mod-rewrite subdirectory


【解决方案1】:

是的,我想去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]

【讨论】:

    猜你喜欢
    • 2012-09-22
    • 2010-11-02
    • 2014-06-30
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 2015-09-27
    • 2011-12-25
    相关资源
    最近更新 更多