2013-05-08 88 views
1

我希望用戶點擊www.domain.com/how-it-works如何在相同頁面內重寫URL和HTML鏈接?

我的URL重寫的鏈接是:

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

的index.php被 「行動」 和「鏈接「參數,然後這是我迷路了......

我目前使用下列內容:

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

這加載了about.php模板文件,這正是我想要的,但然後我在哪裏放置「相同的頁面鏈接」:#HIW? #HIW是about.php模板文件中的鏈接。

+0

你說的意思是'我在哪裏把「同一個頁面鏈接」'? – cheesemacfly 2013-05-08 19:34:04

+0

@cheesemacfly:意思是#HREF(在我的例子中是#HIW)。通常情況下,您會將#HREF放在網址的末尾,或放在用戶點擊的同一頁面鏈接中。但是因爲我正在加載一個模板php文件,所以如何模擬用戶點擊鏈接? – TimNguyenBSM 2013-05-08 21:42:58

回答

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

+0

謝謝。這有助於解決我的挑戰。我發現去domain.com/how-it-works只會把我帶到關於頁面。但是當我轉到domain.com/how-it-works#HIW時,它按預期工作。事實上,在RewriteRule #HIW和NE中刪除也是可行的。 – TimNguyenBSM 2013-05-09 20:20:31

0

據我瞭解你的URL重寫已經攜帶該鏈接信息。在這種情況下,您在上面提到的HIW作爲最終加載網址是index.php?action=about&link=howItWorks

爲什麼你不在0123.裏面的about.php並寫出來自那個結果的輸出?

我的意思是,如果你想從about.php文件中給出答案,你可以通過$_GET[]獲得鏈接信息,並從那裏給你想要的結果信息。

+0

你會如何「觸發」鏈接?通常情況下,您會將#HREF放在網址的末尾,或放在用戶點擊的同一頁面鏈接中。 – TimNguyenBSM 2013-05-08 21:41:42

+0

嗯,我正在考慮類似的東西。 (在about.php)'if($ _ GET [「link」] ==「howItWorks」){echo「該頁面的html內容」} – zurfyx 2013-05-09 04:49:45

+0

感謝您的幫助Rov。 – TimNguyenBSM 2013-05-09 20:24:54

0

展開您的重寫,讓內在聯繫:

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

請不,我不知道這是否REG出廠價我只是打字出來很快。請嘗試一些,如果它不正常工作。

應該 '只是工作' :)

+0

這沒有幫助,因爲我想要的鏈接「www.domain.com/how-it-works」已經正確地改寫爲「index.php?action = about&link = howItWorks」。問題是如何在需要模板文件時參考相同的頁面鏈接。 – TimNguyenBSM 2013-05-08 21:35:02

+0

我在說什麼,www.domain.com/how-it-works#heading2目前不適用於您的方案。你需要兩個www.domain。com/how-it-works和www.domain.com/how-it-works#heading2被這個規則所吸引。這是不是一個正確的理解? – beiller 2013-05-08 22:04:13

+0

謝謝你的幫助。似乎我並不需要添加第二個重寫規則,這與我的想法相反。下面是我如何解決我的問題:RewriteRule^how-it-works /?$ index.php?action = about [NC],鏈接是domain.com/how-it-works#HIW。這意味着我的其他重寫規則:重寫規則^ about /?$ index.php?action = about [NC]可與以下鏈接一起使用:domain.com/about#HIW – TimNguyenBSM 2013-05-09 20:24:36