.htaccess |打开文件而不是目录

时间:2016-01-09 21:37:05

标签: php apache .htaccess

基本上我有这样的目录设置:

/.htaccess
/home.php
/office.php
/office/tutorials.php

和.htaccess这样的文件:

<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
order deny,allow

# setup
DirectoryIndex /home.php
ErrorDocument 403 /err403.php
ErrorDocument 404 /err404.php

# remove trailing slash
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]

# To internally forward /dir/file to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]

现在正在发生以下情况。 当我致电&#34; www.domain.com/home"它完美地运作。 但是当我试着打电话给www.domain.com/office"时,我总是得到没有样式的home.php页面,它显示我在&#34; www.domain.com/office/ &#34;,所以我想在名为office的目录中。

我尝试重命名office /目录,然后office.php文件再次完美运行,但是我需要将该目录命名为与文件相同,因此URI看起来很干净并且相互构建就像这样:

www.domain.com/office (own page)
www.domain.com/office/tutorials (own page)

提前感谢!

1 个答案:

答案 0 :(得分:0)

你的倒数第三行是:

RewriteCond %{REQUEST_FILENAME} !-d

您已经要求Apache不要将www.domain.com/office映射到office.php,因为有一个直接调用的office。如果这不是您的愿望,请删除该行。