我正在尝试为网站实现URL重定向,而不是逐页进行.我想在global.asax文件中执行此操作.以下是我定义的代码.
我想将http://website.net作为我的主要网址,如果有人在http://www.website.net中输入,我希望有一个永久的URL重定向.
不幸的是,它不适用于实时网站.任何人都可以指出代码中的问题.代码不会产生任何错误.
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
if (HttpContext.Current.Request.Url.ToString().ToLower().Contains("http://website.net"))
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location", Request.Url.ToString().ToLower().Replace("http://website.net", "http://www.website.net"));
}
}
Run Code Online (Sandbox Code Playgroud) 嗨,我使用phpunit进行测试,使用Symfony\Bundle\FrameworkBundle\Test\WebTestCase进行单元测试.到目前为止没有问题,但现在我们开始使用https,我的测试不再工作了.我的测试中的每个请求都开始得到301响应代码.我的问题是我如何告诉Symfony的\分量\ HttpKernel \客户端发出请求到 HTTPS://localhost.com/uri而不是HTTP://localhost.com/uri?
编辑
在symfony网站http://symfony.com/doc/current/book/testing.html中,他们展示了如何配置服务器参数,并且有一个像
$client->request(
'GET',
'/demo/hello/Fabien',
array(),
array(),
array(
'CONTENT_TYPE' => 'application/json',
'HTTP_REFERER' => '/foo/bar',
'HTTP_X-Requested-With' => 'XMLHttpRequest',
)
);
Run Code Online (Sandbox Code Playgroud)
我试图提供http://php.net/manual/en/reserved.variables.server.php中提到的HTTPS元素,将我的代码更改为
$client->request('GET',
'/'.$version.'/agencies/'.$agencyId,
array(),
array(),
array('HTTPS' => 'on')
);
Run Code Online (Sandbox Code Playgroud)
但是,它仍然无法正常工作?
我有一个Django项目,我正在使用视图来处理不同的HTTP方法.该POST处理的对象的创建,然后重定向到同一个视图作为GET(或因此我认为),使用Django的redirect()快捷方式(HTTPResponseRedirect)返回新创建的对象.这很好.我尝试了同样的事情,PUT但我陷入了重定向循环.在我挠了一会儿后,我偶然发现了这个SO答案,然后我推断,由于重定向不处理POST数据,请求变成了一个GET.
当我从以下位置进行重定向时,我通过观察日志来确认这一点POST:
[15/Dec/2014 00:47:43] "POST /client/151/ HTTP/1.1" 302 0
[15/Dec/2014 00:47:43] "GET /client/151/ HTTP/1.1" 200 395
Run Code Online (Sandbox Code Playgroud)
然而,PUT停留a PUT并将我引入重定向循环,直到它出错.
[14/Dec/2014 23:07:36] "PUT /api/asset/6779 HTTP/1.1" 301 0
[14/Dec/2014 23:07:37] "PUT /api/asset/6779/ HTTP/1.1" 302 0
[14/Dec/2014 23:07:37] "PUT /api/asset/6779 HTTP/1.1" 301 0
[14/Dec/2014 23:07:38] "PUT /api/asset/6779/ HTTP/1.1" 302 0
[14/Dec/2014 23:07:38] "PUT /api/asset/6779 HTTP/1.1" 301 0
[14/Dec/2014 23:07:39] "PUT /api/asset/6779/ HTTP/1.1" 302 …Run Code Online (Sandbox Code Playgroud) python django http http-status-code-301 http-status-code-302
我们正在实现基于 REST 的 Web 服务,并且对某些用例有一些疑问。
考虑有一个唯一的帐户,其中包含一些信息(例如添加到购物车信息)
应使用什么 HTTP 状态代码?
我正在使用CURL c ++ api从雅虎的财务API中获取报价.curl api和我的代码似乎工作正常,但是当我告诉CURL访问我想要的网址时,我收到了一条"301"重定向消息.如何让CURL完成301重定向并获取我想要的数据?
这是我正在使用的URL:
http://download.finance.yahoo.com/d/quotes.csv?e=.csv&s=WSF,WSH&f=b2b3s
Run Code Online (Sandbox Code Playgroud)
以下是我得到的回复:
<HEAD><TITLE>Redirect</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black">
<FONT FACE="Helvetica,Arial"><B>
"<em>http://download.finance.yahoo.com/d/quotes.csv?e=.csv&s=WSF,WSH,WSM,WSO,WST,WTI,WTM,WTR,WTS,WTU,WTW,WU,WWE,WWW,WX,WXS,WY,WYN,X,XAA,XCJ,XCO,XEC,XEL,XEL-A,XEL-E,XFB,XFD,XFH,XFJ,XFP,XFR,XIN,XJT,XKE,XKK,XKN,XKO,XL,XL-Y,XOM,XRM,XRX,XVF,XVG,Y,YGE,YPF,YSI,YUM,YZC,ZB-A,ZB-B,ZB-C,ZEP,ZF,ZLC,ZMH,ZNH,ZQK,ZTR,ZZ,ZZC&f=b2b3ccd1d2ghjkk2k3l2l3mm2m3m4m5m6m7m8opst7vw</em>".<p></B></FONT>
<!-- default "Redirect" response (301) -->
</BODY>
Run Code Online (Sandbox Code Playgroud)
这是我的CURL初始化选项
CURL *eh = curl_easy_init();
curl_easy_setopt(eh, CURLOPT_WRITEFUNCTION, cb);
curl_easy_setopt(eh, CURLOPT_HEADER, 0L);
curl_easy_setopt(eh, CURLOPT_URL, url);
curl_easy_setopt(eh, CURLOPT_PRIVATE, url);
curl_easy_setopt(eh, CURLOPT_VERBOSE, 0L);
curl_multi_add_handle(cm, eh);
Run Code Online (Sandbox Code Playgroud)
我没有发布我的代码,因为它全部正常工作,我只需要通过跟随CURL的301的一般方法.
我有400状态代码的自定义错误消息:
get '/do' do
raise ParamXMissingError unless params['x']
end
error ParamXMissingError do
haml :custom_error_page
end
Run Code Online (Sandbox Code Playgroud)
我希望ParamXMissingError为400,但是当我运行上面的代码,并通过Firefox网络工具检查时,似乎Sinatra实际上返回500而不是400.如何让它显示custom_error_page.haml并返回400?
最好是从错误块中处理状态代码和页面是很好的,而不是我在提升时会撒上的东西ParamXMissingError.例如,这将是重复的,并不是一个好的解决方案:halt 400, haml(:custom_error_page)
我如何301重定向,例如:一个子目录/Blog/来/blog/用的.htaccess?
我正在使用jQuery 1.6.1与jQuery Mobile 1.0.1.当您链接到然后尝试执行301重定向的页面时,我会遇到问题.
我在以下网址设置了示例页面:http://www.widgetsandburritos.com/jquery-mobile-test/
这个页面上唯一的东西是jQuery Mobile包含和另一个页面的链接,该页面在其他地方有301重定向.
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
</head>
<body>
<a href="301test.php">301 test</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
301test.php具有以下内容:
<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: 301success.html" );
?>
Run Code Online (Sandbox Code Playgroud)
这应该只是简单地将浏览器传递给301success.html.如果您直接转到该URL,它会起作用
http://www.widgetsandburritos.com/jquery-mobile-test/301test.php
但是当你使用jQuery Mobile点击页面上的链接时,它会显示"undefined".jQuery Mobile目前无法处理重定向吗?
任何可能的工作?
谢谢你的帮助.
编辑[3/23/12 12:41 AM CST]
我还在jQuery Mobile论坛上发布了这个问题.有人建议在锚标记中添加rel ="external".如果你所做的只是建立一个链接,这在技术上是有效的,但是如果你通过其他机制(例如POST请求)进行重定向,则无法解决问题.
为了说明,我在http://www.widgetsandburritos.com/jquery-mobile-test/test2.html设置了一个二级测试.
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
</head>
<body>
<form method="post" action="301test.php"> …Run Code Online (Sandbox Code Playgroud) 我正在努力为最初使用查询字符串构建的网站创建适当的301重定向.旧的URL结构如下所示:
http://www.oldsite.com/about/index.cfm?fuseaction=cor_av&artID=5049
Run Code Online (Sandbox Code Playgroud)
我想将整个子文件夹(名为"about")重定向到新域上的新页面.新域名的URL如下所示:
http://www.newsite.com/info
Run Code Online (Sandbox Code Playgroud)
所以,我设置了一个如下所示的重定向:
redirectMatch 301 ^/about/ http://www.newsite.com/info
Run Code Online (Sandbox Code Playgroud)
它重定向很好,但它保持附加原始URL字符串,因此新的URL在浏览器中看起来像这样:
http://www.newsite.com/info/?fuseaction=cor_av&artID=5049
Run Code Online (Sandbox Code Playgroud)
我绝对不够Apache/301专家知道如何解决这个问题.我只是想剥掉一切从?上.
真的很感激任何帮助.
我们即将在 reactjs 中部署我们的站点,我们已经(重新)移动了一个 url,但将其合并到了我们的主页中,因此/[product]/menu我们将其合并到/[product]. 现在他们说我应该用 301 for 响应/[product]/menu并将其重定向到/[product],我该如何完成这个以及其他一些页面?
如何使用 react-router 设置 301 重定向?我在哪里设置哪些页面需要重定向到哪些其他页面?我现在有这样的设置:
app.get('*', (req, res) => {
// routes is our object of React routes defined above
match({ routes, location: req.url }, (err, redirectLocation, props) => {
console.log(redirectLocation);
if (err) { // something went badly wrong, so 500 with a message
res.status(500).send(err.message);
// HERE: HOW DO I USE THIS?
} else if (redirectLocation) { // we matched a ReactRouter redirect, so …Run Code Online (Sandbox Code Playgroud) javascript http-status-code-301 express reactjs react-router
redirect ×3
http ×2
.htaccess ×1
apache ×1
api ×1
asp.net ×1
c++ ×1
curl ×1
django ×1
express ×1
httpresponse ×1
https ×1
javascript ×1
php ×1
python ×1
query-string ×1
rack ×1
react-router ×1
reactjs ×1
rest ×1
ruby ×1
sinatra ×1
symfony ×1
web-services ×1