简单.htaccess重写规则不';行不通
我有以下.htaccess文件。它拒绝访问以下url结构: www.example.com/test 即使它被罚款: www.example.com/test.php 我用这个文件运行了一些更复杂的重写规则,效果很好。例如: 重写规则^tests/([0-9]+)/?$/tests\u page.php?id=$1[PT,L,QSA] 我不明白这怎么会发生。我错过了什么简单.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
#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)问题通常是我知道一些可以测试的东西。一些我可以删除的代码之类的。很抱歉,我通常不会处理太多这方面的问题,所以我也错过了一些好的方面。这里的快速搜索发现了一些可能有用的东西