如何在htaccess中排除特定文件

时间:2011-03-03 19:14:32

标签: .htaccess

我在htaccess

中写了下面的代码

RewriteRule ^([a-zA-Z _-] +)。php $ http://www.domain.com/myfile.php?page=inc- $ 1.php [NC]

我不希望重写index.php文件 - 它应该正常打开。

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码排除所有现有文件(例如index.php):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z_-]+).php$ http://www.domain.com/myfile.php?page=inc-$1.php [NC]

或仅排除您可以使用的index.php

RewriteCond %{REQUEST_URI} !^(.*/)?index\.php$ [NC]
RewriteRule ^([a-zA-Z_-]+).php$ http://www.domain.com/myfile.php?page=inc-$1.php [NC]

答案 1 :(得分:1)

认为这就是你所要求的:

  

“我想允许index.php文件   正常服务,但所有其他   请求遵循此重写...“

要保持索引文件不被重定向,您需要在规则之前使用RewriteCond:

RewriteCond $1 !index\.php
RewriteRule ^([a-zA-Z_-]+).php$ http://www.domain.com/myfile.php?page=inc-$1.php [NC]