【发布时间】:2014-08-15 05:29:10
【问题描述】:
我有一个名为login 的子域,该文件夹中有一个文件index.php(该文件夹位于我的文档根目录中)。 .htaccess 文件也在文档根目录中,其内容如下:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
ErrorDocument 404 http://www.example.com/error
ErrorDocument 403 http://www.example.com/error
ErrorDocument 500 http://www.example.com/error
当我转到http://login.example.com/ 时,我最终进入了前面提到的错误页面。但是,如果我导航到 http://login.example.com/index.php 一切正常。我对 RegEX 不是很熟悉,但我确实怀疑这是因为我的 .htaccess 文件,它应该只删除 URL 末尾的 .php。
非常感谢任何帮助!
编辑:我通过在文件夹login 中添加一个.htaccess 文件解决了这个问题:
RewriteEngine Off
DirectoryIndex index.php
感谢大家的帮助! :-)
【问题讨论】:
-
可能你需要
DocumentRoot index.php -
@RahilWazir 不应该是 apache 的默认设置吗?因为如果我转到
http://www.example.com/它工作得很好,它只显示我的 index.php 而不在 URL 中指定它。 -
是 Apache 的默认设置,它也适用于
http://www.example.com/主域,但可能不适用于您的子域。 -
@RahilWazir 那么为什么
.htaccesModRewrite 和 ErrorDocuments 会在子域中获取?我愿意尝试一下,但我非常怀疑它会带来改变。 -
因为条件
RewriteCond %{REQUEST_FILENAME} !-f失败或RewriteRule未能匹配任何请求uri。
标签: php regex apache .htaccess mod-rewrite