RewriteRule与子域混淆

时间:2014-06-24 20:05:41

标签: php regex apache .htaccess mod-rewrite

我有一个名为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文件只能删除网址末尾的.php

任何帮助都非常感谢!

编辑:我已通过在.htaccess文件夹中添加login文件来修复此问题:

RewriteEngine Off
DirectoryIndex index.php

感谢大家的帮助! : - )

1 个答案:

答案 0 :(得分:0)

你的规则对我来说很好。

另一方面,您可能需要.htaccess文件夹中的login文件:

DirectoryIndex index.php

我猜你得404 http://login.example.com/,因为它正在寻找一个不存在的默认index.html。需要告诉Apache使用index.php作为该文件夹的索引文件。