阻止htaccess忽略

时间:2012-07-27 09:09:15

标签: .htaccess redirect dns subdirectory

我和我的htaccess文件发生了噩梦...我有一个停放的域名,我想将所有内容重定向到public_html内的子文件夹 所以我使用了这段代码

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?parked\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/foo/
RewriteRule ^(.*)$ /foo/$1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>

它的工作完美现在它重定向www.parked.com =它显示&gt; public_html/foo内容但在 public_html 文件夹中我还有一个名为的文件夹管理员和内部文件夹 foo 我还有一个名为admin

的文件夹
  • 的public_html /管理
  • 的public_html /富
  • 的public_html /富/管理

问题在于,每当我尝试访问 www.parked.com/admin 时,它都会显示 public_html/admin 文件夹而不是 public_html/admin

我想要它做的是将 www.parked.com 完全重定向到public_html/foo并忽略 public_html 中的文件

1 个答案:

答案 0 :(得分:0)

为什么你把条件放到规则的最后?这应该有效:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?parked\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/foo/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /foo/$1 [L,NC]
</IfModule>