用.htaccess获取index.php

时间:2011-04-24 12:36:03

标签: .htaccess mod-rewrite

我在.htaccess中使用了一堆ReWrite规则,例如这些

RewriteRule ^brochure/([^/]+)/?$ brochure.php?cat_path=$1

通过搜索此网站找到的答案,这一切都很有效。但我有一点小小的障碍。

此规则目前非常完美 RewriteRule ^([a-zA-Z0-9_-]+)?$ $1.php它抓住了我的所有网址,例如www.mysite.com/shane和请求shane.php - 到目前为止一直很好,但是当我致电www.mysite.com时,我需要它来请求index.php

我可以使用哪条规则?

谢谢大家。

更新 - 为了将来需要类似帮助的用户。

我的^([a-zA-Z0-9_-]+)?$ $1.php规则引起了我上面提到的问题。此类规则中不需要问号?,当您删除问号时,目录中的index.php文件将返回到默认登录页面。感谢Tomalak的帮助。

3 个答案:

答案 0 :(得分:0)

您不需要任何规则。只需确保目录的.php默认索引文件,它就会自动发生。

<强>更新

我认为你的规则

^([a-zA-Z0-9_-]+)?$ $1.php

实际上应该是

^([a-zA-Z0-9_-]+)$ $1.php

这样它就不会与没有给出文件名的请求(你想要指向index.php)发生冲突。

答案 1 :(得分:0)

我认为这是你正在寻找的,不确定的想法:

RewriteRule ^/$ index.php

答案 2 :(得分:0)

您可以按照Tomalak的说法进行操作,并确保将DirectoryIndex设置为加载index.php

或接近詹姆斯所说的,

RewriteRule ^/?$ index.php [L]