2017-04-26 63 views
0

我在Url Rewrite在我的多語言站點有問題,或者更好,也許我不太瞭解它。Url Rewrite via.htaccess

我原來的鏈接是一樣的東西

www.mydomain.com/index.php?lang=en&s=2 

我寫這條規則:

RewriteEngine On RewriteRule ^([^/]*)/([^/]*)\.html$ index.php?lang=$1&s=$2 [L] 

,它的工作。事實上,如果我寫在地址欄

www.mydomain.com/en/2.html (smart url) 

我去到正確的頁面地址欄上的網址聰明。

問題是,在我的代碼的鏈接仍然是:

<a href="index.php?lang=<?php echo $lang?>&s=2">link</a> 

,當我點擊它,在地址欄上的網址是原來的,而不是聰明的一個。

我認爲在htaccess上的規則會自動地「轉向」(在地址欄中)所有我的鏈接在更聰明的東西,而無需更改原始的PHP代碼......但也許我錯了。 如果我錯了,我應該如何編寫我的鏈接,以使智能URL,但通過變量來識別語言和頁面?我很困惑。

謝謝。

+0

的可能的複製[htaccess的如何強制重寫URL後/自動清理URL](http://stackoverflow.com/questions/14564258/htaccess-how-to-force-automatic-clean-url) – Jer

+0

您正在重寫certai .html頁面指向.php頁面。您的'a'標籤鏈接到.php頁面。有什麼問題? – Pyromonk

回答

0

.htaccess你也需要更改URL在你的頁面,例如在給定鏈路<a href="index.php?lang=<?php echo $lang?>&s=2">link</a>您需要刪除問號 <a href="index.php/<?php echo $lang?>/2">

+0

謝謝Ace,它工作正常! – DevTen

+0

如何在URL中使用其他參數(如標題)來修改規則?像** www.mydomain.com/index.php?lang = en&s = 2&title = title-example **來獲得** www.mydomain.com/en/title-example.html **(標題代替ID)。 謝謝。 – DevTen