从地址栏隐藏 URL 路径并仅从站点访问它
Hide URL path from address bar and access it from site only
我想限制访问者使用 URL 访问我网站的子页面。他们只能通过单击 link.
从网站访问子页面
假设,要访问用户个人资料页面,link 是
www.example.com/user/2/profile
还有一个带有此 link 的按钮,用于访问用户个人资料页面。
因此,当用户单击该按钮时,它将被重定向到那个 URL,但如果有人直接访问这个 URL,它将显示错误或重定向到主页。
或者,URL会像
一样被隐藏
www.example.com/#
总之,没有人通过直接点击URL而不是索引页面来访问网页。
可以吗?
我的网站在 Laravel.
要使其只能从您的站点访问,您可以检查 Referer
HTTP 请求 header。这在直接请求时为空,并设置为 referring URL 否则(即 link 被 clicked[=38 的页面=]).
然而,这是不可靠的。用户可以将他们的浏览器配置为不发送 Referer
header(因此这些用户将被阻止)。搜索引擎机器人不会发送 Referer
header(如果这是一个问题)。对于恶作剧的用户来说,伪造 Referer
以获得访问权限是微不足道的。
例如,在根 .htaccess
文件的顶部(在 Laravel 指令之前),您可以这样做:
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/
RewriteRule ^user/2/profile$ - [F]
以上将为 /user/2/profile
的任何请求提供 403 禁止,其中 Referer
HTTP 请求 header 未启动 https://www.example.com/
(包括 http
和 non-www).
So, when a user clicks on the button it will be redirected to that URL
澄清一下,用户点击的 link 必须是“普通”link,这会导致浏览器为新的 URL 发出另一个 HTTP 请求,否则 Referer
不会生成。
Hide URL path from address bar
你不可能真的那样做。
我想限制访问者使用 URL 访问我网站的子页面。他们只能通过单击 link.
从网站访问子页面假设,要访问用户个人资料页面,link 是
www.example.com/user/2/profile
还有一个带有此 link 的按钮,用于访问用户个人资料页面。
因此,当用户单击该按钮时,它将被重定向到那个 URL,但如果有人直接访问这个 URL,它将显示错误或重定向到主页。
或者,URL会像
一样被隐藏www.example.com/#
总之,没有人通过直接点击URL而不是索引页面来访问网页。
可以吗?
我的网站在 Laravel.
要使其只能从您的站点访问,您可以检查 Referer
HTTP 请求 header。这在直接请求时为空,并设置为 referring URL 否则(即 link 被 clicked[=38 的页面=]).
然而,这是不可靠的。用户可以将他们的浏览器配置为不发送 Referer
header(因此这些用户将被阻止)。搜索引擎机器人不会发送 Referer
header(如果这是一个问题)。对于恶作剧的用户来说,伪造 Referer
以获得访问权限是微不足道的。
例如,在根 .htaccess
文件的顶部(在 Laravel 指令之前),您可以这样做:
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example\.com/
RewriteRule ^user/2/profile$ - [F]
以上将为 /user/2/profile
的任何请求提供 403 禁止,其中 Referer
HTTP 请求 header 未启动 https://www.example.com/
(包括 http
和 non-www).
So, when a user clicks on the button it will be redirected to that URL
澄清一下,用户点击的 link 必须是“普通”link,这会导致浏览器为新的 URL 发出另一个 HTTP 请求,否则 Referer
不会生成。
Hide URL path from address bar
你不可能真的那样做。