根据用于访问您的域的 URL 更改页面内容

Change page content according to what URL is used to access your domain

本文关键字:用于 访问 URL      更新时间:2023-09-26

例如:我的网站 www.mydomain.com

页面上唯一的东西是

<h1>Category</h1>

当用户输入 url 时 www.mydomain.com/sports 我希望加载页面 www.mydomain.com(有或没有/sports 路径,最好始终保持相同的 URL),并且知道用户使用 url www.mydomain.com/sports 访问页面到达那里。

在这一点上,我可以使用javascript来改变

<h1>Category</h1>

<h1>Sports</h1>

我能够将页面 www.mydomain.com/sports 重定向到 www.mydomain.com,但是这样做时,URL 会发生变化,并且我无法检测到最初用于使用 javascript: http://www.w3schools.com/jsref/obj_location.asp 导航的页面 URL(www.mydomain.com/sports),因为它返回没有路径的新页面 URL。

我希望有一个非PHP/.htaccess解决方案。

更新:

我求助于使用 htaccess 来解决问题,比预期的更容易实现。

这是我使用的,以防其他人发现这很有用

.htaccess 文件(上传到您网站上您希望使用它的目录,在我的示例中,这将是主目录)

<ifModule mod_rewrite.c>
RewriteEngine On 
RewriteBase / ****start at/find the root directory 
RewriteRule ^(/sports|sports/)$ index.html [NC,L] ****find and clear index.html from URL if the extension is mydomain.com/sports or mydomain.com/sports/
</ifModule>

看看这个插件。http://html5doctor.com/history-api/历史.js此插件允许您将新 URL 推送到浏览器的历史记录(以跨浏览器兼容的方式),而无需实际刷新页面。

因此,您的方法如下。

  1. 列表项
  2. 加载时,获取窗口位置以获取"运动"
  3. 将 www.mydomain.com 推送到历史记录堆栈上(使用历史记录.js)
  4. 将 h1 更改为"运动"。

这种方法的唯一问题是,如果有人尝试为页面添加书签,则不会是他们上次导航到 URL 时遇到的内容。 然而,这可能是你在问题中提出的重点。

您的服务器端代码应使用 add 一个 setCookie 标头,该标头具有要显示的类别的值。然后你的javascript代码可以获取cookie并适当地设置字段。