# 设置 'Referrer-Policy' =\> 'same-origin'

**URL:** https://meta.discourse.org/t/set-referrer-policy-same-origin/241111
**Category:** Self-hosting
**Created:** [2022年十月6日 09:42 UTC](https://meta.discourse.org/t/set-referrer-policy-same-origin/241111 "2022-10-06T09:42:39Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![OrkoGrayskull](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/orkograyskull/32/275883_2.png) [@OrkoGrayskull](https://meta.discourse.org/u/OrkoGrayskull)
#### Post date: [2022年十月6日 09:42 UTC](https://meta.discourse.org/t/set-referrer-policy-same-origin/241111/1 "2022-10-06T09:42:39Z")

</div>

你好，

我想将“Referrer-Policy”标头设置为“ **same-origin** ”。这无法通过 nginx 完成，因为它是在 Redis/Rails 中设置的。

默认似乎是：  
`Referrer-Policy' => 'strict-origin-when-cross-origin'`

是否可以将其更改为：  
`Referrer-Policy' => 'same-origin'`

我在容器内外都找不到该字符串。 🙄

---

<div class="post-metadata">

### Author: ![OrkoGrayskull](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/orkograyskull/32/275883_2.png) [@OrkoGrayskull](https://meta.discourse.org/u/OrkoGrayskull)
#### Post date: [2022年十月10日 14:32 UTC](https://meta.discourse.org/t/set-referrer-policy-same-origin/241111/2 "2022-10-10T14:32:30Z")

</div>

是的。太蠢了。我没有找对地方。

我找到了很多条目：  
`Referrer-Policy' => 'strict-origin-when-cross-origin'`

这是列表（`grep strict-origin-when-cross-origin /var/www/discourse/ -R`）：

- /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.2/lib/rack/protection/referrer\_policy.rb: # referrer\_policy:: The policy to use (default: ‘strict-origin-when-cross-origin’)
- /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.2/lib/rack/protection/referrer\_policy.rb: default\_options :referrer\_policy =\> ‘strict-origin-when-cross-origin’
- /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/generators/rails/app/templates/config/initializers/new\_framework\_defaults\_7\_0.rb.tt:# “Referrer-Policy” =\> “strict-origin-when-cross-origin”
- /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/railties-7.0.3.1/lib/rails/application/configuration.rb: “Referrer-Policy” =\> “strict-origin-when-cross-origin”
- /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionpack-7.0.3.1/lib/action\_dispatch/railtie.rb: “Referrer-Policy” =\> “strict-origin-when-cross-origin”
- /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-protection-3.0.2/lib/rack/protection/referrer\_policy.rb: # referrer\_policy:: The policy to use (default: ‘strict-origin-when-cross-origin’)
- /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-protection-3.0.2/lib/rack/protection/referrer\_policy.rb: default\_options referrer\_policy: ‘strict-origin-when-cross-origin’
- /var/www/discourse/config/initializers/new\_framework\_defaults\_7\_0.rb: “Referrer-Policy” =\> “strict-origin-when-cross-origin”
- grep: /var/www/discourse/tmp/cache/bootsnap/compile-cache-iseq/f6/fc077900e2584e: binary file matches
- grep: /var/www/discourse/tmp/cache/bootsnap/compile-cache-iseq/8a/029cf0d9c06e6d: binary file matches
- grep: /var/www/discourse/tmp/cache/bootsnap/compile-cache-iseq/25/d90a345e4f734e: binary file matches

我真的不知道在哪里设置 `same-origin`。有什么提示吗？

---

<div class="post-metadata">

### Author: ![RGJ](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/rgj/32/523185_2.png) [@RGJ](https://meta.discourse.org/u/RGJ)
#### Post date: [2022年十月10日 16:31 UTC](https://meta.discourse.org/t/set-referrer-policy-same-origin/241111/3 "2022-10-10T16:31:32Z")

</div>

一个非常糟糕的 hack [这里](https://meta.discourse.org/t/allow-customization-of-referrer-policy/106832/4)，但\n\n你可以在 nginx 中通过添加一个 `proxy_hide_header` 然后跟着你自己的 `add_header` 来解决这个问题。

---

<div class="post-metadata">

### Author: ![OrkoGrayskull](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/orkograyskull/32/275883_2.png) [@OrkoGrayskull](https://meta.discourse.org/u/OrkoGrayskull)
#### Post date: [2022年十月10日 18:58 UTC](https://meta.discourse.org/t/set-referrer-policy-same-origin/241111/4 "2022-10-10T18:58:47Z")

</div>

是的，糟糕的黑客行为。我不喜欢这样。 😉

---

<div class="post-metadata">

### Author: ![OrkoGrayskull](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/orkograyskull/32/275883_2.png) [@OrkoGrayskull](https://meta.discourse.org/u/OrkoGrayskull)
#### Post date: [2022年十月14日 13:48 UTC](https://meta.discourse.org/t/set-referrer-policy-same-origin/241111/5 "2022-10-14T13:48:18Z")

</div>

有人能帮我看看，在生产环境中，这个地方该怎么用吗？

---

<div class="post-metadata">

### Author: ![Kianga](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/kianga/32/543546_2.png) [@Kianga](https://meta.discourse.org/u/Kianga)
#### Post date: [2026年二月23日 19:26 UTC](https://meta.discourse.org/t/set-referrer-policy-same-origin/241111/6 "2026-02-23T19:26:01Z")

</div>

一个稍微不那么粗暴的解决方法是将以下内容放入自定义主题组件的 HTML 头部：

```html
<meta name="referrer" content="same-origin">

```

这并不会移除 HTTP 头部，而且我找不到任何确切信息说明 HTTP 头部会覆盖 HTML meta 标签还是反之，但至少根据对 [whatsmyreferer.com](https://whatsmyreferer.com/) 的快速测试，它似乎有效：发出的链接不再发送 referrer 头部。
