.htaccess规则会在地址栏中重写URL

时间:2013-03-01 11:30:41

标签: php apache .htaccess mod-rewrite post

我有一个网站,我的链接看起来像这样 http://www.domain.com/index.php?lang=English&inc=canyoning 我设法写了这样的rewriteRule:

RewriteRule (German|English)\/(.*) http://www.domain.com/index.php?lang=$1&inc=$2 [NC,R]

现在我的链接如下所示:<a href="http://www.domain.com/English/canyoning"> ...

这样可行,但我可以在浏览器地址栏中看到非用户友好的URL。如何告诉浏览器在网址中使用/English/canyoning之类的链接,而不是index.php?lang=English&inc=canyoning

第二:我想在页面上使用表格。 没有区别,无论我使用form method = GET还是POST,没有变量到达目标站点。

我猜我的rewriteRule错了。如何解决这些问题?

谢谢你的帮助!

1 个答案:

答案 0 :(得分:4)

这是因为你正在进行重定向而不是重写..(R标志表示Redirect

因此,删除R标志应解决您的问题。

您可能还需要删除硬编码域。在进行重写时,您无法重写到其他域。

即。变化

RewriteRule (German|English)\/(.*) http://www.domain.com/index.php?lang=$1&inc=$2 [NC,R]

RewriteRule (German|English)\/(.*) /index.php?lang=$1&inc=$2 [NC]