Php 停用文件夹的Apache重写
我有一个带有默认设置的Apache web服务器,我没有向其中添加任何重写规则 当我通过应用程序请求一个文件时,如果该文件不存在,Apache将返回另一个与原始名称相近的文件。返回值是301。我不想要这种行为,但我不知道如何禁用它 我尝试了在网上找到的几种解决方案,但似乎都不管用。以下是我的尝试:Php 停用文件夹的Apache重写,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我有一个带有默认设置的Apache web服务器,我没有向其中添加任何重写规则 当我通过应用程序请求一个文件时,如果该文件不存在,Apache将返回另一个与原始名称相近的文件。返回值是301。我不想要这种行为,但我不知道如何禁用它 我尝试了在网上找到的几种解决方案,但似乎都不管用。以下是我的尝试: 我添加了一个.htaccess文件,其中重写引擎处于关闭状态 我添加了一个.htaccess文件,其中启用了重写引擎,但没有任何其他行或重写规则。一位在线人士表示,这类似于将其关闭 我在httpd.
- 我添加了一个.htaccess文件,其中
重写引擎处于关闭状态
- 我添加了一个.htaccess文件,其中启用了
,但没有任何其他行或重写规则。一位在线人士表示,这类似于将其关闭重写引擎
- 我在httpd.conf中添加了一个
指令,其中只有一行:
。我尝试了两次该目录,一次是完整路径,另一次是从域名开始的路径。例如,链接是RewriteEngine Off
。我的第一次尝试是www.domain.com/some/path/file.flv
,第二次尝试是
“/some/path/123_video.flv”
现在,如果该文件不存在,并且我有一个名为:“124_video.flv”
的文件,那么将播放另一个文件,我的/var/log/httpd/access_log
将有一行带有GET 301
返回值
我确信我从我的应用程序中发送了正确的文件名。access\u log
甚至显示了我的文件名(123\u video.flv
,在本例中),但带有301
返回代码,然后我的应用程序播放另一个视频(124\u video.flv
)
作为测试,我在我的httpd.conf
中禁用了mod\u rewrite.so
模块(通过用#
注释行),并开始将500
作为不存在的文件的返回代码
更奇怪的是,我只是又做了一次快速测试,我检查了我的httpd.conf并将所有AllowOverride all
更改为AllowOverride None
重新启动了httpd服务器,我仍然得到了301
代码
我甚至评论了mod_重写。所以再次并重新启动了服务器。。我得到了同样的结果301
我认为我的上一次测试还有其他错误,但不确定是什么。当我通过我的应用程序请求一个文件时,如果该文件不存在,Apache会返回另一个文件,其名称与原始名称相近。
-这肯定不是默认行为。你能提供几个例子吗?你所说的通过我的应用程序请求文件是什么意思?可能是您的应用程序,而不是web服务器。谢谢您的评论。请检查更新1。因此,您确定它是Apache,而不是您的应用程序。现在要缩小问题的范围,您必须确定它是否发生在htaccess文件或apache主配置文件(如主httpd.conf和vhosts文件)中。我不知道你的应用,但是浏览器倾向于快速缓存301
重定向。可能是在注释mod_rewrite.so
行之后出现第二个301
的原因。为了进一步缩小范围,让我们从问题中删除应用程序,使用第三方http客户端查看如果请求不存在的flv文件会发生什么。例如,使用Redirect Detective。我能看看你的httpd.conf吗?。以及404
的ErrorDocument
指令设置为什么?