我改变了我的节目控制器,通过他们的永久链接而不是他们的id(对于SEO多汁性)来查找记录.
def show
@project = Project.find_by_permalink(params[:id])
end
Run Code Online (Sandbox Code Playgroud)
但是,如果我键入localhost:3000/projects/foo(并且没有foo永久链接的项目)我得到500服务器错误而不是404找不到.
为什么会这样,我该如何解决?
我最近在我的.htaccess文件中添加了这么一点代码:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)
好的,我想,我明白这里发生了什么.如果找不到文档,删除PHP文件扩展名的这一小段代码会导致循环.这个循环导致500服务器错误而不是(正确的)404.不幸的是我很少理解这些重写实际上在做什么,所以我不知道如何重写它只是在文档存在时才触发这个重定向.
我做了一些阅读,我不确定Apache认为是什么"常规"文件.我的意思是它有效,但为什么第一行不能-f代替!-f呢?是-u完成这个的唯一方法吗?
我正在尝试建立自己的MVC作为练习和学习经验.到目前为止,这就是我所拥有的(index.php):
<?php
require "config.php";
$page = $_GET['page'];
if( isset( $page ) ) {
if( file_exists( MVCROOT . "/$page.php" ) ) {
include "$page.php";
} else {
header("HTTP/1.0 404 Not Found");
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我的问题是,我不能使用标头发送到404,因为标头已经发送.我应该重定向到一个404.html或有更好的方法吗?随意批评我到目前为止(它很少).我会喜欢建议和想法.谢谢!
我正在使用asp.net,当我手动输入一个坏URL(在浏览器中)时,它给了我:
无法找到该资源.说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用.请查看以下网址,确保拼写正确.
我想要一个不存在的坏网址重定向到主页.
我该怎么做呢?我正在使用站点地图.
我已经在这个问题上待了将近一个星期了,并且已经在网上进行了研究以获得答案,但我找不到答案.
问题:
每次我访问我的网站的主页时,都会导致404错误.
恩. http://www.domain.com --->重定向到404
http://www.domain.com/home --->进入我设置为主页的cms页面
我已经运行了magento清理脚本,但它无法解决问题.
ERROR MESSAGE:
Whoops, our bad...
The page you requested was not found, and we have a fine guess why.
If you typed the URL directly, please make sure the spelling is correct.
If you clicked on a link to get here, the link is outdated.
What can you do?
Have no fear, help is near! There are many ways you can get back on track with Magento Store.
Go back to …Run Code Online (Sandbox Code Playgroud) 我正在部署一个Django网页,我喜欢Django Debug 404页面和Django页面,当有python错误时.但是,这些不适合上网的网页.所以我做了一个自定义的404页面.但是,对我和我的IP地址,我想仍然有Django Debug页面出现.如果我将Debug设置为false,是否还有这样做?
我安装了一个自托管的NuGet服务器作为描述在这里.我使用的是Windows 2008 R2,IIS 7.5和Nuget 1.7.
从VS中我能够在包管理器窗口中看到我自己托管的包,但是当我尝试安装它们中的任何一个时,我收到错误"远程服务器返回错误:(404)Not Found".
帮助任何人?
几个月来,我们的IIS/ColdFusion服务器在Google抓取工具扫描期间抛出了404错误.通常很容易跟踪这些,但在这种情况下,谷歌正在尝试扫描我们的CFC文件.这些文件确实存在,但它们不会暴露给Internet - 仅暴露给ColdFusion服务器.尽管如此,谷歌正在我们网站的某个地方看到与CFC的链接,并且正在努力关注它们.
下面是在404的一个中转储我们的CGI结构. baseCFC是CF映射到D:\Domains\[domain]\cfc.baseCFC源代码中的所有引用都在<cfajaxproxy>标记中,或者CreateObject()在Application.CFC中调用(下面的示例).
也许这是一个重要的线索:baseCFC指的是D:\Domains\[domain]\cfc,谷歌正试图达到D:\Domains\[domain]\www\baseCFC,这是我们网站的主目录.显然,Google将其baseCFC视为服务器上的普通(未映射)目录,并希望对其进行扫描.

以下是baseCFC我们的代码中两种类型的引用的示例:
<cfajaxproxy>:
<cfajaxproxy cfc="baseCFC.Misc" jsclassname="ajxMisc">
Run Code Online (Sandbox Code Playgroud)
的CreateObject():
<cfscript>
request.Misc = CreateObject( "component", "baseCFC.Misc" );
</cfscript>
Run Code Online (Sandbox Code Playgroud)
我们如何解决这些与CFC相关的404错误?谢谢!
我刚刚在AWS S3中创建了一个新存储桶。我想在其中托管一些静态文件,但是如果它们不全部存在,请重定向到我的主服务器。看起来很简单,但是我没有按照指示进行操作。
在存储桶中,我已授予所有人查看权限。
我添加了一个存储桶策略:
{
"Version": "2012-10-17",
"Id": "Policy999999999",
"Statement": [
{
"Sid": "Stmt9999999999",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
在静态网站托管上,我启用了它并创建了简单的index.htm和error.htm页面(不是我需要它们,但是如果需要的话)。然后添加了以下重定向规则:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<Protocol>http</Protocol>
<HostName>www.mydomain.com</HostName>
<ReplaceKeyPrefixWith>/</ReplaceKeyPrefixWith>
</Redirect>
</RoutingRule>
</RoutingRules>
Run Code Online (Sandbox Code Playgroud)
(显然,如果它没有列表权限,则需要403而不是404,但它不适用于403/404的任何变体,以及是否具有列表权限)
当我转到存储桶中不存在的URL(存在的URL可以)时,我得到的是:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>9DD57C7132E76D65</RequestId>
<HostId>
I15odykUdMnGCC+hQfb1pfsnt+gkfGVxuD2sy5PrxrX16P8Njpy3yQiLLH30evTkdOOAl28HA9M=
</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)
(如果启用了列表权限,则为NoSuchKey)
救命!
amazon-s3 amazon-web-services http-status-code-403 http-status-code-404
我正在使用Vue-CLI创建Vue应用程序。我不喜欢的一种行为是localhost:8080/nonexistent/file.html,使用代码200提供任何不存在的URL(例如),就像它是root:一样localhost:8080。
这使得调试XHR请求有时真的很混乱。
如何使其返回404代码?