【问题标题】:How can I make a website such that when a user enters any URL related to the website, it opens up the index page如何制作一个网站,当用户输入与该网站相关的任何 URL 时,它会打开索引页面
【发布时间】:2013-06-27 06:19:30
【问题描述】:

假设我有一个静态 HTML 网站“example.com/index.html”,并且我有另一个页面的 URL 为“example.com/contact-us.html”。

当有人想直接进入contact-us.html页面时,在浏览器中输入URL 'example.com/contact-us.html'。但我希望在这种情况下打开索引页。但是一旦网站在带有索引页面的浏览器上加载,用户必须能够按照自己的意愿浏览网站上的链接。

这可能吗?如果是,如何?

【问题讨论】:

  • 我不完全明白你在问什么。您的意思是您永远不希望用户能够在不使用导航链接的情况下直接进入某个页面,或者您只是希望他们在首先看到主页之前无法去任何地方?
  • user2534880 的答案会起作用,但它并不完全可靠。您可以在会话中混合使用 cookie 或 IP 跟踪,但我认为没有完全可靠的解决方案。我可以问一下为什么你要这样做吗?

标签: html redirect web indexing


【解决方案1】:

如果你想阻止用户直接打开索引以外的页面,你可以检查referer,如果referer不匹配你的网站,则重定向到索引页面。

您使用的是 Apache 吗?如果是,您可以使用 mod_rewrite 来执行此操作。

首先,启用 mod_rewrite,通常通过取消注释 httpd.conf 文件中的以下行:

LoadModule rewrite_module modules/mod_rewrite.so

然后在与index.html 相同的文件夹中创建一个.htaccess 文件,内容如下:

RewriteEngine on

RewriteRule ^index.html$ index.html [QSA,L]

RewriteCond %{HTTP_REFERER} !^http://example\.com/.*$
RewriteRule ^.*$ /index.html [R,L]

【讨论】:

  • +1 这是执行此操作的“标准”方式(例如,当有人想要防止图像热链接时)。标准的警告是浏览器发送Referer不是强制性的,有些人出于隐私原因禁用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
  • 2011-02-18
  • 1970-01-01
相关资源
最近更新 更多