我正在使用Spring Boot和基于@ResponseBody的方法,如下所示:
@RequestMapping(value = VIDEO_DATA_PATH, method = RequestMethod.GET)
public @ResponseBody Response getData(@PathVariable(ID_PARAMETER) long id, HttpServletResponse res) {
Video video = null;
Response response = null;
video = videos.get(id - 1);
if (video == null) {
// TODO how to return 404 status
}
serveSomeVideo(video, res);
VideoSvcApi client = new RestAdapter.Builder()
.setEndpoint("http://localhost:8080").build().create(VideoSvcApi.class);
response = client.getData(video.getId());
return response;
}
public void serveSomeVideo(Video v, HttpServletResponse response) throws IOException {
if (videoDataMgr == null) {
videoDataMgr = VideoFileManager.get();
}
response.addHeader("Content-Type", v.getContentType());
videoDataMgr.copyVideoData(v, response.getOutputStream());
response.setStatus(200); …Run Code Online (Sandbox Code Playgroud) 有没有办法在htaccess文件中输入RewriteRule,以便在键入或到达某个文件夹/ url路径时重定向到404页面?
例如,如果我想每个用户被重定向到一个404页面,如果他们得到:www.mydomain.com/abc或www.mydomain.com/abc/或任何附带"ABC"后,即使该文件夹真的存在,我不希望用户能够访问它.如果他们确实达到了,我希望他们看到404错误页面.*请注意我不打算设置自定义404错误页面,我正在寻找一种方法重定向到默认的404页面.
我该怎么做?可能吗?
RewriteRule ^abc/(*)?$ [R=404,L]
Run Code Online (Sandbox Code Playgroud)
我怎么能在PHP中做同样的事情,重定向到404错误页面?我再一次不是在谈论设置自定义404页面,我在谈论默认的404页面,只是使用php将用户重定向到404错误页面.
我的网页使用iframe来收集其他网页的内容.所有页面都在同一个域中.
从主页面,有没有办法确认所有iframe已加载,并且没有404错误?
这个问题部分指向我之前的问题: Ionic + Angular POST请求返回状态404
但我无法找到有效的解决方案.
问题如下:
如果我从设备上运行的移动应用程序请求我总是得到响应404:
Request Method:POST
Status Code:404 Not Found (from cache)
Request Headersview source
Accept:application/json, text/plain, */*
Content-Type:text/plain
Origin:file://
User-Agent:Mozilla/5.0 (Linux; Android 4.4.2; Lenovo Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
Request Payloadview source
{,…}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在Chrome浏览器中使用Postman插件在桌面上尝试相同的请求,我总是得到带有我需要的数据的响应200.
我认为这是由Angular http方法引起的问题,但在之前的帖子中我注意到这不是真的.
我怎么能避免这个呢?我应该在应用程序的HTML中,在请求期间还是在服务器端(PHP)设置一些标头?
非常感谢任何建议.
编辑:
我试过通过这种方式设置cache:false:
$http({
method : 'POST',
url : $scope.remoteUrl,
data: postData,
headers: headersData,
cache: false,
timeout: 10000
// success response
})
Run Code Online (Sandbox Code Playgroud)
但没有运气.
我想故意在我的Zend Framework应用程序中的一个控制器中导致404错误.我怎样才能做到这一点?
我希望有一个404页面可以检测用户是通过我的网站,通过缩短的URL还是通过其他网站访问该页面,而我正在使用PHP进行访问.我正在慢慢掌握PHP,这可能是一个简单的问题,但我很累,说实话,我的系统中没有咖啡因,我想尽快把我的投资组合中的任何松散的目标捆绑起来.
我发现$_SERVER['HTTP_REFERER'];PHP变量给了我整个URL,这是一个开始.有没有一种方法可以通过另一个变量或函数只给我根域,记住一些引用可能使用http://和一些https://(所以简单地从第七个字符开始将不总是工作)?这样,我可以根据两个(或更多)预定义地址匹配URL,并生成与该域相关的内容.
我是编写Java Servlet的新手,我正在努力想要一个简单的HelloWorld例子来正常工作.
HelloWorld.java类是:
package crunch;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
Run Code Online (Sandbox Code Playgroud)
我正在运行Tomcat v7.0,并且已经阅读了类似的问题,响应涉及更改invoker servlet-mapping部分web.xml,本节实际上并不存在,当我添加它时仍然会出现同样的问题.
有没有办法如何配置Apache Web服务器为某些特定目录返回404(未找到)错误代码而不是403(禁止),我想禁止访问?
我找到了一些建议使用mod_rewrite的解决方案,例如
RewriteEngine On
RewriteRule ^.*$ /404 [L]
Run Code Online (Sandbox Code Playgroud)
由于发送404而不是403的目的是混淆目录结构,这个解决方案太具有启发性,因为它重定向到某个不同的位置,这使得最初访问的目录显然确实存在.
apache security mod-rewrite http-status-code-403 http-status-code-404
我在我的IIS管理器6本地主机上使用WOFF和WOFF2字体,但是当我在Azure网站上托管该站点时,它们会提供404.
我想我在Web.config中有正确的MIME类型(尝试使用和不使用点).我通过FTP连接时看到文件.我可以链接到我放在与字体相同的文件夹中的图像.我已经在Azure上重新启动了该站点.
Web.config文件
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
</staticContent>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
CSS
@font-face {
font-family: 'Cutive';
font-style: normal;
font-weight: 400;
src: url(../fonts/cutive.woff2) format('woff2'), url(../fonts/cutive.woff) format('woff');
}
Run Code Online (Sandbox Code Playgroud)
我没有想法..任何人?谢谢!
我们使用js lib retina.js,它将低质量图像与"视网膜"图像交换(大小乘以2).问题是,retina.js为每个无法找到的"视网膜"图像抛出404.
我们拥有一个网站,用户可以上传他们自己的图片,这些图片很可能不是视网膜分辨率.
有没有办法阻止js投掷404s?
如果你不知道lib.这是抛出404的代码:
http = new XMLHttpRequest;
http.open('HEAD', this.at_2x_path);
http.onreadystatechange = function() {
if (http.readyState != 4) {
return callback(false);
}
if (http.status >= 200 && http.status <= 399) {
if (config.check_mime_type) {
var type = http.getResponseHeader('Content-Type');
if (type == null || !type.match(/^image/i)) {
return callback(false);
}
}
RetinaImagePath.confirmed_paths.push(that.at_2x_path);
return callback(true);
} else {
return callback(false);
}
}
http.send();
Run Code Online (Sandbox Code Playgroud)