Php 如何:URL重写&;同一页面内的HTML链接?

Php 如何:URL重写&;同一页面内的HTML链接?,php,html,url-rewriting,hyperlink,Php,Html,Url Rewriting,Hyperlink,我想让用户点击www.domain.com/how-it-works的链接 我的URL重写是: RewriteRule ^how-it-works/?$ index.php?action=about&link=howItWorks [NC] php获取“action”和“link”参数,然后这就是我丢失的地方 我目前正在使用以下工具: require( TEMPLATE_PATH . "/about.php" ); 这将加载about.php模板文件,这正是我想要的,但是我应该将以下

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

我的URL重写是:

RewriteRule ^how-it-works/?$ index.php?action=about&link=howItWorks [NC]
php获取“action”和“link”参数,然后这就是我丢失的地方

我目前正在使用以下工具:

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

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

据我所知,您的URL重写已经包含了该链接信息。在本例中,您上面提到的作为最终加载url的
HIW
index.php?action=about&link=howItWorks

为什么不在about.php中获取['link'],并编写该结果的输出


我的意思是,如果你想从
about.php
文件中给出答案,你可以通过
$\u get[]
获得链接信息,并从那里给出你想要的结果信息。

据我所知,你的URL重写已经包含了链接信息。在本例中,您上面提到的作为最终加载url的
HIW
index.php?action=about&link=howItWorks

为什么不在about.php中获取['link'],并编写该结果的输出


我的意思是,如果您想从
about.php
文件中给出答案,您可以使用
$\u get[]
获取链接信息,并从中给出所需的结果信息。

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

RewriteRule ^how-it-works/?(#.*)?$ index.php?action=about&link=howItWorks [NC]
请不要,我不知道这个注册表是否有效,我只是很快打出来。如果工作不正常,请尝试一些


它应该‘正常工作’:)

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

RewriteRule ^how-it-works/?(#.*)?$ index.php?action=about&link=howItWorks [NC]
请不要,我不知道这个注册表是否有效,我只是很快打出来。如果工作不正常,请尝试一些

它应该‘正常工作’:)

您的url中的
#HIW
称为一个

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

(我选择了
&link=howItWorks
,因为我想
#HIV
会取代它,如果不是,你可以把它放回去)

url中的
#HIW
称为

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

(我选择了
&link=howItWorks
,因为我想
#HIV
会取代它,如果不是,你可以把它放回去)


你说的
是什么意思?我把“同一页面链接”放在哪里?@cheesemacfly:意思是#HREF(#在我的例子中是HIW)。通常,您会将#HREF放在url的末尾,或者放在用户单击的同一页面链接中。但是因为我正在加载一个模板php文件,我如何模拟用户点击链接?你说的
是什么意思?我把“同一页面链接”放在哪里?@cheesemacfly:意思是#HREF(#在我的例子中是HIW)。通常,您会将#HREF放在url的末尾,或者放在用户单击的同一页面链接中。但由于我正在加载一个模板php文件,如何模拟用户点击链接?这没有帮助,因为我想要的链接“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^它是如何工作的/?$index.php?action=about[NC],链接是domain.com/how-it-works 35; HIW。这意味着我的另一个重写规则:RewriteRule^about/?$index.php?action=about[NC]与以下链接一起工作:domain.com/about#hiw这没有帮助,因为我想要的链接“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^它是如何工作的/?$index.php?action=about[NC],链接是domain.com/how-it-works 35; HIW。这意味着我的另一个重写规则:RewriteRule^about/?$index.php?action=about[NC]与以下链接一起工作:domain.com/about#hi您会“触发”该链接吗?通常你会把#HREF放在url的末尾,或者放在用户点击的同一页面链接中。(在about.php中)
if($_GET[“link”]=“howItWorks”){echo“该特定页面的html内容”}
您将如何“触发”该链接?通常你会把#HREF放在url的末尾,或者放在用户点击的同一页面链接中。(在about.php中)
if($_GET[“link”]=“howItWorks”){echo“该特定页面的html内容”}
谢谢。这有助于解决我的挑战。我发现去domain.com/how-it-works只需要我浏览一下About页面。但当我访问domain.com/它是如何工作的#HIW时,它就如预期的那样工作了。事实上,在重写规则中删除HIW和NE也很有效。谢谢。这有助于解决我的挑战。我发现去domain.com/how-it-works只需要我浏览一下About页面。但当我访问domain.com/它是如何工作的#HIW时,它就如预期的那样工作了。事实上,在重写规则中删除#HIW和NE,w