简单.htaccess重写规则不';行不通

简单.htaccess重写规则不';行不通,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我有以下.htaccess文件。它拒绝访问以下url结构: www.example.com/test 即使它被罚款: www.example.com/test.php 我用这个文件运行了一些更复杂的重写规则,效果很好。例如: 重写规则^tests/([0-9]+)/?$/tests\u page.php?id=$1[PT,L,QSA] 我不明白这怎么会发生。我错过了什么 #OPTIONS Options -Indexes Options +FollowSymLinks #ACCESS TO T

我有以下.htaccess文件。它拒绝访问以下url结构:

www.example.com/test

即使它被罚款:

www.example.com/test.php

我用这个文件运行了一些更复杂的重写规则,效果很好。例如:

重写规则^tests/([0-9]+)/?$/tests\u page.php?id=$1[PT,L,QSA]

我不明白这怎么会发生。我错过了什么

#OPTIONS
Options -Indexes
Options +FollowSymLinks

#ACCESS TO THE .HTACCESS FILE
<Files .htaccess>
order allow,deny
deny from all
</Files>

#REWRITE ENGINE
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteEngine On

#PAGES REWRITE
RewriteRule ^test/?$ /test.php
#选项
选项-索引
选项+FollowSymLinks
#访问.HTACCESS文件
命令允许,拒绝
全盘否定
#重写引擎
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重新启动发动机
#页面重写
重写规则^test/?$/test.php
更新:

我将文件重命名为tests.php,并将规则更改为以下内容:

重写规则^test/?$/tests.php

但这仍然不能解释为什么会发生这种情况


为什么url文件夹名不能与文件名匹配?

这似乎是多视图选项的问题。使用以下命令将其禁用:

Options -MultiViews

位于.htaccess顶部的行。选项
MultiViews
Apache的内容协商模块使用,该模块在
mod_rewrite
模块之前运行,并使Apache服务器匹配文件扩展名。所以
/file
可以在URI中,但它将提供
/file.php

您有一个名为“test”的目录吗?尝试访问/test时会发生什么情况?@nomve没有名为/test/…的文件夹。我收到以下消息:未找到请求的URL/test在此服务器上未找到。Apache/2.2.22(Debian)问题通常是我知道一些可以测试的东西。一些我可以删除的代码之类的。很抱歉,我通常不会处理太多这方面的问题,所以我也错过了一些好的方面。这里的快速搜索发现了一些可能有用的东西