丢失具有短URL的文件的奇怪行为

时间:2014-12-20 16:36:56

标签: apache url http-status-code-404

我的网络服务器显示错误页面的错误。这些网址都是404:

http://my.web.site/missing.html
http://my.web.site/missing/
http://my.web.site/missing

但是这些网址会重定向到/,并带有301 Moved Permanently状态代码:

http://my.web.site/m/
http://my.web.site/m

为什么这些网址不是404?如何关闭301重定向?

由于我无法访问此共享服务器(Apache)上的http.conf,我正在寻找.htaccess中的解决方案。

只是为了澄清:我想要的是所有缺失的页面404。


注意:

观察到的行为(一个字母的URL为301)是我(共享)网站空间的默认行为。 此刻有 .htaccess文件。我想用 .htaccess文件解决此问题

2 个答案:

答案 0 :(得分:2)

我的问题中描述的行为是由Apache模块mod_spelling引起的。使用

创建.htaccess
  

CheckSpelling Off

解决了这个问题。


我很失望,我的赏金被授予"答案" (a)没有回答我的问题,(b)提出了一个解决方案"这会导致我试图避免的确切行为(301),以及(c)我的评论指出这一点被回答者忽略了。

答案 1 :(得分:1)

如您所知,您无法访问http.conf文件,因此首先需要检查您的htaccess重写是否正常

如果它正在工作(为了检查它你可以写一些环境变量

SetEnv APPLICATION_ENV dev_dev

并检入$_SERVER

现在是时候在htaccess中为301重定向做点什么了

我在HTACCESS中编写了这段代码

RewriteEngine on

RewriteRule ^testurl/?$ /home/? [L,NC,R=301]

我不知道你想从哪个URL重定向,但是 在我的代码中xyz.com/testurl将重定向到xyz.com/home

这里我的应用程序是codeIgniter所以你可能有像这样的页面扩展名.php或.html