检查.htaccess如果存在文件或文件夹

时间:2014-05-12 15:29:56

标签: php apache .htaccess

我正在寻找一种为我的脚本设置一些设置的方法 我希望在.htaccess检查URL栏中输入的任何地址,如果在(LIKE domain.com/foldername)之后输入文本然后检查并且文件夹存在则转到文件夹 如果文本与root中的任何文件夹不相似,则检查它是否为文件,最后是否转到特定文件 所以让我用.htaccess中的例子解释一下:

If ( text = folder )
   goes to folder
elseif( text == file )
   goes to file.php
else
   goes to sample.php?text

更新: 我在根目录上有tickets.php和主题文件夹,我想如果网址是domain.com/theme,那么就转到名为theme的文件夹和/或如果domain.com/tickets转到ticket.php

2 个答案:

答案 0 :(得分:4)

这样的东西?

RewriteEngine On

# If ( text = folder )
RewriteRule ^folder/?$ - [L]

# if( text == file.php )
RewriteRule ^file\.php$ - [L]

# else
RewriteRule !^sample\.php /sample.php?text [L]

或者,如果您指的是任何文件或文件夹:

RewriteEngine On

# If ( text = folder )
# if( text == file.php )
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# else
RewriteRule !^sample\.php /sample.php?text [L]

答案 1 :(得分:1)

这是一种非常常见的模式。

只有当路径不是文件夹或文件时,才会触发此规则。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ sample.php?path=$1 [QSA]