我的网络服务器显示错误页面的错误。这些网址都是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文件解决此问题。
答案 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