2012-02-20 10 views
-1

我想要写在.htaccess文件中的重写规则重定向不指定一个有效的目录名的所有请求重定向。什么将是重写规则,当查询不是一个有效的目录

为例如如果我在我的网站根目录下有1个文件夹test和1个文件index.php。我的要求是,它们在测试文件夹或子文件夹请求页面的所有请求将不会被mod_rewrite的重写和那不以test开头的所有其他请求都将被改写为的index.php

P.S.数量的文件夹和他们的名字经常改变,这就是为什么我正在寻找一个通用的重写代码,它将检查有效的目录名称。

以上情况将会是什么重写?

回答

0

为此在YOUT .htaccessDocumentRoot

RewriteEngine on 
RewriteBase/

Rewritecond %{REQUEST_FILENAME} !-f 
Rewritecond %{REQUEST_FILENAME} !-d 
Rewritecond %{REQUEST_FILENAME} !-l 
RewriteRule^index.php [L] 

rewritecond apache docs-f-d & -l是CondPatterns的变体。而非真正的正则表达式字符串。

  • “-D”(是目录) 黄柏TestString视为一个路径名并测试它是否存在,并且是一个目录。
  • “-f”(是普通文件) 将TestString视为一个路径名并测试它是否存在,并且是一个普通文件。
  • “-L”(是符号链接) 黄柏TestString视为一个路径名并测试它是否存在,并且是一个符号链接。

如果前缀为感叹号('!'),则会导致否定其含义。即!-f表示不是常规文件。