文件和目录命名为相同的PHP

时间:2014-01-14 07:08:11

标签: php regex .htaccess mod-rewrite

我目前在我的网站上有这两件作品。

localhost/FTS/papers - 这是一个php文件
localhost/FTS/papers/ - 这是一个目录

我想要做的就是当我加载时

localhost/FTS/papers - 或 -
localhost/FTS/papers/ - 或 - localhost/FTS/papers.php

我希望他们都去论文文件。

现在它正在访问目录而不是我想要的文件。

3 个答案:

答案 0 :(得分:1)

将此规则放在DOCUMENT_ROOT/.htaccess文件中:

RewriteEngine On
RewriteBase /FTS/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/FTS/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

答案 1 :(得分:0)

我认为当你与论文目录或论文文档交谈时,PHP(对我而言也是如此)会让人感到困惑。

如果可能,最好的方法是将论文文档的名称更改为papers_doc,以确保您在正确的位置。 (这很容易出错)。

您可以轻松地使用PHP的is_dir功能来检查您是在与文件还是目录进行通信:

var_dump(is_dir('a_file.txt'));
var_dump(is_dir('bogus_dir/abc'));

或者使用is_file:

var_dump(is_file('a_file.txt'));
var_dump(is_file('bogus_dir/abc'));

答案 2 :(得分:0)

您可以做的一件事是使用此规则在papers目录中放置一个htaccess文件:

RewriteEngine On
RewriteRule ^$ /FTS/papers.php [L]

并允许mod_dir将/FTS/papers重定向到/FTS/papers/