标签: http-status-code-301

JSF 2 -- 永久重定向 (301)

我试图从 JSF 中实现 301 重定向,但是当我对其进行 firebug 时,我总是看到 302 正在执行。有人能告诉我如何改变下面的方法来完成 301 吗?

/**
 * Redirect to specified destination url
 *
 * @param destination
 */
public static void permanentRedirect(String destination) {
    final ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();

    try {
        HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

        if (!response.isCommitted()) {
            externalContext.redirect(destination);
        }
    } catch (IOException e) {
        LOGGER.debug("Could not redirect to " + destination);
    }
} 
Run Code Online (Sandbox Code Playgroud)

jsf redirect http-status-code-301 jsf-2

4
推荐指数
1
解决办法
1737
查看次数

.htaccess 重定向除主页之外的所有页面

我刚刚合并了两个网站。站点 A 现已与站点 B 合并。

站点 A 具有一个 .htaccess 文件,该文件将所有内容重定向到托管站点 B 的新域。

RewriteRule (.*) http://www.siteb.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)

它工作正常,但是,我需要站点 A 的主页不重定向。

我需要在上面的代码中添加什么才能实现这一点?

apache .htaccess redirect http-status-code-301

4
推荐指数
1
解决办法
3461
查看次数

目标 URL 未收到发布数据

我有一个场景,其中http://www.omsite.com中的表单数据要发布到其他网站上,例如http://www.hissite.com/myfolder

现在,每当发布数据时,我都会收到永久重定向的 301 状态代码,而不是发布或获取状态代码 200,因此数据不会发布。

检查目标 URL,我将其从http://www.hissite.com/myfolder更改为http://www.hissite.com/myfolder/,是的,我在 /myfolder 之后仅添加了一个斜杠,在那里我得到了成功的响应。

我需要一些帮助来理解仅在目标 URL 末尾添加正斜杠如何使我的数据成功发布?

注意:目标网页是源网页的子域

php .htaccess post http http-status-code-301

4
推荐指数
1
解决办法
953
查看次数

从 https 重定向到 http?

这里有奇怪的问题。我使用 FullCalendar 向服务器上的端点发起 ajax 请求。端点是:

https://my_website/events/?start=2019-03-31&end=2019-05-12&_=1555698739056

请注意,它明确是 https。但是,当我发起请求时(即当 Fullcalendar 发起请求时),我收到 301 并重定向到非 https 端点:

http://my_website/events?start=2019-03-31&end=2019-05-12&_=1555698739056

由于页面是通过 https 加载的,因此失败。

在此输入图像描述

端点工作正常 - 当我将其加载到浏览器中时,我得到了预期的 json 输出(通过 https)。此页面上发生的其他 ajax 请求可以正常工作,并且我成功地在本网站其他地方(到另一个端点)使用 Fullcalendar 执行了完全相同的操作。只是这一种情况的表现出乎意料。

可能值得注意的是,它位于 nginx 反向代理/负载均衡器后面的 docker 容器中;站点配置非常简单:

upstream docker {
    server localhost:8701;
    server localhost:8702;
  }

server {
    server_name my_website;
    location / {
      proxy_pass http://docker;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
      # proxy_set_header                HTTP_Country-Code $geoip_country_code;
        proxy_pass_request_headers      on;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/my_website/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/my_website/privkey.pem; # managed …
Run Code Online (Sandbox Code Playgroud)

ajax https nginx fullcalendar http-status-code-301

4
推荐指数
1
解决办法
557
查看次数

HttpClient GetStringAsync 返回 301,但浏览器能够导航到正确的地址

我认为HttpClient应该能够处理301错误代码,并重定向到正确的地址。但是,使用以下地址(https://www.npr.org/templates/rss/podcast.php?id=510298),它会抛出异常。不过浏览器能够正确处理它。只是想了解是否有出路或者我错过了什么。

HttpClient client = new HttpClient();

var s = await client
    .GetStringAsync("https://www.npr.org/templates/rss/podcast.php?id=510298");
Run Code Online (Sandbox Code Playgroud)

投掷

Test1 [0:00.779] Failed: System.Net.Http.HttpRequestException : Response 
status code does not indicate success: 301 (Moved Permanently).
System.Net.Http.HttpRequestException : Response status code does not 
indicate success: 301 (Moved Permanently).
   at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
   at System.Net.Http.HttpClient.GetStringAsyncCore(Task`1 getTask)
   at XUnitTestProject1.UnitTest1.Test1() in 
   C:\Users\res\source\repos\test\XUnitTestProject1\UnitTest1.cs:line 13
Run Code Online (Sandbox Code Playgroud)

c# http-status-code-301 dotnet-httpclient

4
推荐指数
1
解决办法
1357
查看次数

301基于.htaccess中的GET变量重定向URL

我有一些凌乱的旧网址,比如......

http://www.example.com/bunch.of/unneeded/crap?opendocument&part=1

http://www.example.com/bunch.of/unneeded/crap?opendocument&part=2

...我想重定向到更新,更清洁的形式......

http://www.example.com/page.php/welcome

http://www.example.com/page.php/prices

我知道我可以通过简单的重定向将一个页面重定向到另一个页面,即

重定向301 /bunch.of/unneeded/crap http://www.example.com/page.php

但源页面不会改变,只有它是GET变量.我无法弄清楚如何将重定向基于这些GET变量的值.任何人都可以帮忙!?我对旧的正则表达方式非常方便,所以如果必须的话我可以使用mod-rewrite,但是我不清楚重写GET变量的语法,我宁愿避免性能损失并使用清除Redirect指令.有办法吗?如果没有,任何人都可以提出正确的mod-rewrite语法?

干杯,

罗杰.

.htaccess mod-rewrite query-string http-status-code-301

3
推荐指数
1
解决办法
1万
查看次数

301将所有内容重定向到新根?

我正在尝试对从旧子域到新域的所有内容进行301重定向.

我有一个简单的.htaccess

Redirect 301 / http://www.smartphonesoft.com/
Run Code Online (Sandbox Code Playgroud)

但是,如果我使用子目录转到旧URL,它会尝试使用子目录重定向到新域并失败.

http://forum.smartphonesoft.com/reminder/

http://www.smartphonesoft.com/reminder/

当我希望它转到

http://www.smartphonesoft.com/

如何将所有内容简单地重定向到新的域根目录?

.htaccess redirect http-status-code-301

3
推荐指数
1
解决办法
5799
查看次数

PHP的file_get_contents是否缓存301状态代码?

如果PHP确实缓存了永久重定向:

  1. 多长时间?
  2. 这个时期可以改变吗?

我也对Perl,Python以及主要用于Web开发的任何其他语言的默认行为感兴趣

php redirect caching status http-status-code-301

3
推荐指数
1
解决办法
861
查看次数

强制Magento没有路由返回状态301而不是404

我的任务是强制所有404页面返回http状态301.我一直在网上搜索/阅读,但我找不到任何有关如何完成此操作的信息.

有没有办法更改layout.xml或模板文件中的http状态?如果没有,我应该看什么控制器?

php http-status-codes magento http-status-code-301

3
推荐指数
1
解决办法
6815
查看次数

春天+瓷砖.如何在Controller中返回301重定向(而不是302)

我使用的代码如下:

@RequestMapping(value="/oldPath")
public String doProductOld(
    @PathVariable(value = "oldProductId") Long oldProductId,
   Model model
) throws Exception {
    Product product = productDao.findByOldId(oldProductId);

    return "redirect:" + product.getUrlNewPath();
 }
Run Code Online (Sandbox Code Playgroud)

一切正常,但这个重定向返回302响应代码,而不是301SEO所需.如何轻松(没有ModelAndView或Http响应)更新它以返回301代码?

PS.当ModelAndView对象从控制器返回时我找到了解决方案,但是当返回Tilestile alias(String)时需要解决方案.

java spring tiles spring-mvc http-status-code-301

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