如果文件夹不存在则重写?

时间:2010-12-17 10:39:12

标签: php .htaccess mod-rewrite

我有以下htaccess文件:

RewriteEngine On
RewriteRule ^([^/]*)$ /bio.php?bio=$1 [L]

我需要它来执行以下操作:

  • 获取以下重写网址:http://www.website.com/john-smith转至/bio.php?bio=john-smith(目前此类作品)
  • 如果已有文件夹(例如/ about-us /),则显示该文件。目前它确实如此,但它最终会增加?bio = about-us。
  • 理想情况下,尽可能使用&没有尾随斜线。

任何帮助都非常感激。

由于

1 个答案:

答案 0 :(得分:12)

尝试这样的事情:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ bio/bio.php?q=$1 [L]

如果找到匹配的物理文件,第一行将跳过RewriteRule;如果找到匹配的目录,第二行将跳过它。第三行是重写规则,如果满足前面的条件,将执行该重写规则。