标签: http-status-code-404

在IIS6上将所有请求重定向到ASP.NET MVC

我可能忽略了一些非常简单的东西,但我试图将所有错误的URL重定向到根据条件过滤URL的操作,然后301重定向到合适的页面或发出404页面.

为此,我在路由表的末尾有这样的路由:

routes.MapRoute("Error", "{*url}", new { controller = "Main", action = "Error" }); 
Run Code Online (Sandbox Code Playgroud)

这样的动作:

public ActionResult Error(string url)
{
        if (/* Conditions are met... */)
        {
            Response.Status = "301 Moved Permanently";
            Response.AddHeader("Location", /* Destination URL */);
            Response.End();
        }

        Response.StatusCode = 404;
        return View(/* 404 page... */));
}
Run Code Online (Sandbox Code Playgroud)

这在当地非常有效.

但是,当部署到IIS6时,不包含.mvc(例如oldfile.php)的URL永远不会发送到ASP.NET进程进行路由.

有一个简单的解决方案/我忽略了什么吗?

编辑:这与此问题有关,但在IIS6下,没有.mvc的URL不会被发送用于ASP.NET MVC处理.

asp.net-mvc redirect iis-6 http-status-code-404

2
推荐指数
1
解决办法
1978
查看次数

使用PHP找不到自定义404

我使用以下代码显示PHP找不到的cutom 404:

header("HTTP/1.0 404 Not Found");
header("Status: 404 Not Found");
include('404.php');
exit();
Run Code Online (Sandbox Code Playgroud)

但是,默认浏览器的404页面会显示出来.在包含PHP文件的同时生成404的正确代码是什么?

谢谢,

乔尔

php http-status-code-404

2
推荐指数
1
解决办法
781
查看次数

如果已经发送标题,我怎么能404页面?

我使用php GET检查URL中的ID,然后从匹配该ID的数据库中检索tekst.这是执行该操作的代码片段:

function getLyric() {
$id = (int)$_GET['id'];
$query = mysql_query("SELECT * FROM lyrics WHERE id = ".$id."") or die(mysql_error());
if ($row = mysql_fetch_assoc($query)) { ?>
    <h1><?= $row['title']; ?> lyrics</h1>
    <h2><?= $row['author']; ?></h2>

    <pre><?= $row['lyrics']; ?></pre>
    <?php }
else { header("HTTP/1.1 404 Not Found"); header("Status 404 Not Found"); }
}
Run Code Online (Sandbox Code Playgroud)

这就是页面在我调用此函数的位置:

<?php include 'includes/header.php' ?>
<?php getLyric(); ?>
<?php include 'includes/footer.php' ?>
Run Code Online (Sandbox Code Playgroud)

不幸的是,函数中的404部分不起作用.我收到以下警告.Warning: Cannot modify header information - headers already sent by [redacted] functions.php on line 61.第61行是404部分; "else …

php mysql http-headers http-status-code-404

2
推荐指数
1
解决办法
1107
查看次数

WordPress RSS Feed返回404

我们有一个RSS提要(或者我们应该有)通过wordpress,但它只是使用404页面上没有找到 - http://www.warrenaccess.co.uk/feed/rss2

我们已经尝试更改回默认主题并停用所有插件,看看我们是否可以找到问题,但它仍然无法正常工作.

有谁知道是什么原因引起的?

wordpress rss http-status-code-404

2
推荐指数
1
解决办法
9341
查看次数

Nancy Routes导致404

我继承了一个WCF项目,其中包含一些构建错误的路由(可以工作),我需要迁移到新的NancyFx项目中.我需要能够在我的Nancy应用程序中定义响应相同GET请求的路由.我暂时无法改变路线.

在WCF项目中,GET请求...

http://localhost:12345/webapi/GetUsers?UserId=567&Language=en
Run Code Online (Sandbox Code Playgroud)

匹配这个UriTemplate:

UriTemplate = "GetUsers?UserId={userId}&Language={language}
Run Code Online (Sandbox Code Playgroud)


我希望这在南希是等同的

Get["/GetUsers?UserId={userId}&Language={language}"] = p => { ... }
Run Code Online (Sandbox Code Playgroud)

但是相同的GET请求导致404.

有没有办法构建我的Nancy路由来响应这个GET请求?如果没有,任何解决方案?

我知道这是可怕的,但它是暂时的,直到我可以安排时间与我们的UI团队重写前端来调用正确的休息完整URL.

wcf http-status-code-404 nancy

2
推荐指数
2
解决办法
2099
查看次数

为什么rails-api返回500内部服务器错误而不是404?

使用rails-api:

  def show
    render json: Room.find(params[:id])
  end
Run Code Online (Sandbox Code Playgroud)

这在找到资源时有效.但是寻找一个不存在的返回500错误.这不应该归还404吗?

> http --json GET chat.dev/api/v1/rooms/23
HTTP/1.1 500 Internal Server Error
Connection: close
Content-Type: text/plain; charset=utf-8
X-Request-Id: 4cd2ba9f-0f85-4530-9c0a-0ef427ac5b31
X-Runtime: 0.094633

ActiveRecord::RecordNotFound at /api/v1/rooms/23
================================================

> Couldn't find Room with id=23

app/controllers/api/v1/rooms_controller.rb, line 20
---------------------------------------------------

``` ruby
   15         #     render :json => {}, :status => :not_found
   16         #   end
   17         # end
   18   
   19         def show
>  20           render json: Room.find(params[:id])
   21         end
   22   
   23       end
   24   
   25     end    
Run Code Online (Sandbox Code Playgroud)

api ruby-on-rails http-status-code-404 rails-api

2
推荐指数
1
解决办法
3299
查看次数

对jquery.min.map文件的请求引用404错误

在浏览器请求jquery.min.map时,我正在收到404错误.

有趣的是,我从未将此文件添加到我的解决方案中.

任何人都可以向我解释如何驾驭这个错误?

我不知道这个文件的引用位置,因为我没有添加对该文件的引用.

Request URL:http://localhost:22773/Scripts/jquery.min.map
Request Method:GET
Status Code:404 Not Found
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Host:localhost:22773
Referer:http://localhost:22773/Manager/ControlPanel.aspx
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36
Response Headersview source
Cache-Control:private
Content-Length:4992
Content-Type:text/html; charset=utf-8
Date:Tue, 10 Sep 2013 17:37:40 GMT
Server:Microsoft-IIS/8.0
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?YzpcdXNlcnNcYWRtaW5pc3RyYXRvclxkb2N1bWVudHNcdmlzdWFsIHN0dWRpbyAyMDEyXFByb2plY3RzXEFsdW1DbG91ZFxBbHVtQ2xvdWRcU2NyaXB0c1xqcXVlcnkubWluLm1hcA==?=
Run Code Online (Sandbox Code Playgroud)

jquery http-status-code-404

2
推荐指数
1
解决办法
5067
查看次数

HTTP错误404.0 - 在MVC 5中找不到

我在MVC 5.i的项目想要handel 404.我做到了,但问题是

当我使用以下URL访问视图时,一切正常并且符合预期:

http://localhost/Hotels/Index30701000000
Run Code Online (Sandbox Code Playgroud)

但是当我使用以下URL访问视图时,我收到404.0错误消息(错误如下所示)

http://localhost/Hotels/Edit/09099999dfdfb                       
http://localhost/Hotels/Edit/090/20130701000000
Run Code Online (Sandbox Code Playgroud)

错误:HTTP错误404.0 - 未找到您要查找的资源已被删除,名称已更改或暂时不可用.

我的代码是

调节器

public class ErrorController : Controller
{
    // GET: Error
    public ActionResult Unauthorized()
    {
        Response.StatusCode = 404;
        Response.TrySkipIisCustomErrors = true;
        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

RouteConfig

    routes.MapRoute(
        name: "Unauthorized",
        url: "Unauthorized/{action}/{id}",
        defaults: new
        {
            controller = "Error",
            action = "Unauthorized",
            id = UrlParameter.Optional
        }
    );
Run Code Online (Sandbox Code Playgroud)

Global.asax中

    protected void Application_Error()
    {
        Exception exception = Server.GetLastError();
        HttpException httpException = exception as HttpException;
    }
Run Code Online (Sandbox Code Playgroud)

webconfig

  <system.web>
    <customErrors mode="On" defaultRedirect="Error">
      <error statusCode="404" …
Run Code Online (Sandbox Code Playgroud)

c# asp.net custom-error-pages http-status-code-404 asp.net-mvc-5

2
推荐指数
1
解决办法
8325
查看次数

Google云端硬盘API在上传时返回404

我正在尝试通过创建XMLHttpRequest使用Google Drive v3 API将数据上传到文件中。

我使用文件选择器API,返回“0BzAI5S8IJebrUnQtYWFSVzhPdVk”获取文件的ID,以便上载URL应该是“ https://www.googleapis.com/upload/drive/v3/files/0BzAI5S8IJebrUnQtYWFSVzhPdVk?uploadType=resumable ” 。

在我发出PUT请求之后,它返回404状态代码,其中“ Not Found”作为responseText。

我以前尝试过,它会返回状态200,并且能够从响应中获取Location标头,但是现在我无法从任何文件中获取200状态代码。

这是我的代码:

// Log the user in using attachClickHandler (https://developers.google.com/identity/sign-in/web/reference#googleauthattachclickhandlercontainer-options--onsuccess-onfailure)

var id = "0BzAI5S8IJebrOFVMTU5Od183Q2M";
var access_token = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().access_token;

var xhr = new XMLHttpRequest();

xhr.open('PUT', 'https://www.googleapis.com/upload/drive/v3/files/' + id + '?uploadType=resumable');
xhr.setRequestHeader('Authorization', 'Bearer ' + access_token);

xhr.onreadystatechange = function() {
    if (this.readyState == 4) console.log(this.status);
};
xhr.send();
Run Code Online (Sandbox Code Playgroud)

无论我选择哪个文件,它始终会输出404作为状态代码。我会按照https://developers.google.com/drive/v3/web/resumable-upload上的说明进行操作,但是却没有提及为什么会收到404响应。有什么帮助吗?

javascript xmlhttprequest http-status-code-404 google-drive-api

2
推荐指数
1
解决办法
744
查看次数

Magento 2主页404错误

这个让我发疯.我主页上的内容部分返回404,"哎呀我们的坏......".我已经尝试了我能找到的一切,但没有任何效果.我已经尝试了单店模式错误的所有步骤.这没有解决它.我的"默认网址"设置为cms,我的主页被选为"CMS主页".如果我直接浏览CMS页面它可以正常工作,但是当我查看我的主页时,我得到了404 ....

我正在运行Magento 2.1.11版.

php magento http-status-code-404 magento2

2
推荐指数
1
解决办法
2162
查看次数