Url 重写 via.htaccess

Url Rewrite via.htaccess

我的多语言站点中的 Url Rewrite 有问题,或者更好,也许我不太理解它。

我原来的 link 是这样的

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

我写这个规则:

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

它的工作。事实上,如果我在地址栏中写

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

我通过地址栏上更智能的 url 转到了正确的页面。

但是问题是我代码中的link仍然是:

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

然后点进去后,地址栏上的URL是原来的,不是智能的

我认为 htaccess 上的规则会自动 "turned"(在地址栏中)我所有的 link 更智能,而无需更改原始 php 代码...但也许我错了。 如果我错了,我应该如何编写我的 links 才能拥有智能 urls 但传递变量来识别语言和页面?我很困惑。

谢谢。

在您的 .htaccess 中重写 URL 之后,您还需要更改页面中的 URL 例如给定的 link <a href="index.php?lang=<?php echo $lang?>&s=2">link</a> 你需要去掉问号 <a href="index.php/<?php echo $lang?>/2">