Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用.htaccess获取index.php_.htaccess_Mod Rewrite - Fatal编程技术网

使用.htaccess获取index.php

使用.htaccess获取index.php,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我在.htaccess中使用了一系列重写规则,例如 RewriteRule^宣传册/([^/]+)/?$宣传册.php?cat_path=$1 这一切都非常有效,感谢我通过搜索这个网站找到的答案。但我有一个小小的障碍 这条规则目前效果很好 RewriteRule^([a-zA-Z0-9_-]+)?$$1.php它捕获我所有的URL,比如www.mysite.com/shane和requestesshane.php-到目前为止还不错,但是当我调用www.mysite.com时,我需要它来请求ind

我在.htaccess中使用了一系列重写规则,例如

RewriteRule^宣传册/([^/]+)/?$宣传册.php?cat_path=$1

这一切都非常有效,感谢我通过搜索这个网站找到的答案。但我有一个小小的障碍

这条规则目前效果很好
RewriteRule^([a-zA-Z0-9_-]+)?$$1.php
它捕获我所有的URL,比如
www.mysite.com/shane
和requestes
shane.php
-到目前为止还不错,但是当我调用
www.mysite.com
时,我需要它来请求
index.php

我可以使用哪条规则

谢谢大家

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


我的
^([a-zA-Z0-9_-]+)?$$1.php
规则导致了我上面提到的问题。在这种类型的规则中不需要问号
,删除问号后,目录中的index.php文件将返回默认登录页。感谢托马拉克的帮助。

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

更新

我认为你的规则

^([a-zA-Z0-9_-]+)?$ $1.php
事实上应该是

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

这样它就不会与没有给出文件名的请求发生冲突(您希望将其定向到
index.php
)。

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

更新

我认为你的规则

^([a-zA-Z0-9_-]+)?$ $1.php
事实上应该是

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

这样它就不会与没有给出文件名的请求发生冲突(您希望将其定向到
index.php
)。

我想这就是您要寻找的,不确定的是:

RewriteRule ^/$ index.php

我想这就是你要找的,不确定,我想:

RewriteRule ^/$ index.php

您可以按照Tomalak所说的做,并确保设置为load
index.php

或者接近詹姆斯所说的

RewriteRule ^/?$ index.php [L]

您可以按照Tomalak所说的做,并确保设置为load
index.php

或者接近詹姆斯所说的

RewriteRule ^/?$ index.php [L]

通常在我的服务器上,
mysite.com
会请求index.php或index.html,但是当我使用上面提到的规则时,它就不再这样做了。这意味着你的建议行不通,给了我一个机会404@shane:使用
RewriteLog
并查看日志文件。等等,您的规则不应该是
^([a-zA-Z0-9_-]+)$$1.php
?您使用的
似乎是错误的。通常在我的服务器上,
mysite.com
会请求index.php或index.html,但是当我使用上述规则时,它不再会这样做。这意味着你的建议行不通,给了我一个机会404@shane:使用
RewriteLog
并查看日志文件。等等,您的规则不应该是
^([a-zA-Z0-9_-]+)$$1.php
?您使用的
似乎是错误的。无论出于何种原因,在我使用OP中所述规则的那一刻,此规则就不再有效。通常的自动引用index.php或index.html也是如此。@shane:这是因为排序的缘故,这需要首先按照您的规则进行,还需要删除结尾
,它使其余部分成为可选的,这允许它匹配空的大小写,这就是上面所做的。这很有效,但托马拉克对这个?的误用很在行?。他的回答让我省下了一行代码。谢谢。@shane:是的,这就是我提到它的原因。建议你正确地学习正则表达式,它是一个非常方便的技能集。无论出于什么原因,当我使用我在OP中陈述的规则时,这个规则就不再有效了。通常的自动引用index.php或index.html也是如此。@shane:这是因为排序的缘故,这需要首先按照您的规则进行,还需要删除结尾
,它使其余部分成为可选的,这允许它匹配空的大小写,这就是上面所做的。这很有效,但托马拉克对这个?的误用很在行?。他的回答让我省下了一行代码。谢谢。@shane:是的,这就是我提到它的原因。建议你正确地学习正则表达式,它是一个非常方便的技能集。无论出于什么原因,当我使用我在OP中陈述的规则时,这个规则就不再有效了。通常的自动引用也不会引用index.php或index.html。不知道为什么。无论出于什么原因,当我使用OP中所述的规则时,这个规则就不再有效了。通常的自动引用也不会引用index.php或index.html。不知道为什么。