2017-04-26 58 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