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">
我的多语言站点中的 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">