【问题标题】:How To: URL Rewrite & HTML Link Within Same Page?如何:同一页面内的 URL 重写和 HTML 链接?
【发布时间】:2013-05-03 02:18:14
【问题描述】:

我希望用户点击 www.domain.com/how-it-works 的链接

我的 URL 重写是:

RewriteRule ^how-it-works/?$ index.php?action=about&link=howItWorks [NC]

index.php 获取“action”和“link”参数,然后这就是我迷路的地方......

我目前正在使用以下产品:

require( TEMPLATE_PATH . "/about.php" );

这会加载 about.php 模板文件,这正是我想要的,但是我将“同一页面链接”放在哪里:#HIW? #HIW 是 about.php 模板文件中的一个链接。

【问题讨论】:

  • where do I put the "same page link" 是什么意思?
  • @cheesemacfly:意思是#HREF(在我的例子中是#HIW)。通常,您会将#HREF 放在网址的末尾,或者放在用户单击的同一页面链接中。但是因为我正在加载一个模板php文件,如何模拟用户点击链接?

标签: php html url-rewriting hyperlink


【解决方案1】:

您网址中的#HIW 称为fragment identifier in HTML

假设您使用的是 apache,您可以使用(注意末尾的 NER 标志):

RewriteRule ^how-it-works/?$ index.php?action=about#HIV [NC,NE,R]

(我拿走​​了&link=howItWorks,因为我想#HIV 替换了它,如果不是你可以把它放回去)

http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_ne

【讨论】:

  • 谢谢。这有助于解决我的挑战。我发现访问 domain.com/how-it-works 只会将我带到 About Page。但是当我访问 domain.com/how-it-works#HIW 时,它会按预期工作。事实上,在 RewriteRule 中删除 #HIW 和 NE 也可以。
【解决方案2】:

据我了解,您的 URL 重写已经包含该链接信息。在这种情况下,您上面提到的HIW作为最终加载网址是index.php?action=about&link=howItWorks

你为什么不在 about.php 中 $_GET['link'] 并写出该结果的输出?

我的意思是,如果您想从about.php 文件中给出答案,您可以使用$_GET[] 获取链接信息,并从那里提供您想要的结果信息。

【讨论】:

  • 你将如何“触发”链接?通常,您会将#HREF 放在网址的末尾,或者放在用户点击的同一页面链接中。
  • 嗯,我在想类似的东西。 (在 about.php 中)if($_GET["link"] =="howItWorks") {echo "html content of that specific page"}
【解决方案3】:

扩展您的重写以允许内部链接:

RewriteRule ^how-it-works/?(#.*)?$ index.php?action=about&link=howItWorks [NC]

请不要,我不知道这个 reg ex 是否有效,我只是快速输入。如果它不能正常工作,请尝试一些。

它应该“正常工作”:)

【讨论】:

  • 这无济于事,因为我想要的链接“www.domain.com/how-it-works”已经正确重写为“index.php?action=about&link=howItWorks”。问题是当我需要模板文件时如何引用相同的页面链接。
  • 我的意思是,www.domain.com/how-it-works#heading2 目前不适用于您的方案。您需要 www.domain.com/how-it-works 和 www.domain.com/how-it-works#heading2 才能被该规则捕获。这不是正确的理解吗?
  • 感谢您的帮助。似乎我不需要添加第二个重写规则,这也与我的想法相反。以下是我解决问题的方法:RewriteRule ^how-it-works/?$ index.php?action=about [NC],链接为 domain.com/how-it-works#HIW。这意味着我的另一个重写规则:RewriteRule ^about/?$ index.php?action=about [NC] 使用以下链接:domain.com/about#HIW
猜你喜欢
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多