mod_rewrite没有按预期工作

时间:2011-11-17 07:36:11

标签: mod-rewrite

我有一个关于mod_rewrite的问题... url重写sems工作正常...唯一的问题是地址栏中的url保持与重写前相同

例如:我想将www.site.com/page.php?page=merchandise重写为www.site.com/merchandise。现在当我写网址时,我会转到右侧页面(www.site.com/page.php?page=merchandise),但地址栏中的地址仍然存在(www.site.com/page.php?page=merchandise)它应该在哪里(www.site.com/merchandise)......它在当地环境中运行良好......但在现场环境中出现问题...... 我目前正在使用简单的RewriteRule。

重写规则如下:

RewriteRule ^merchandise$ http://www.mysite.com/page.php?page=merchandise [NC]

它很简单,应该可以工作。但它不会隐藏地址栏中的实际地址。这是我的问题。否则它会转到正确的页面。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您正在描述mod_rewrite的制作方式,您会惊讶地发现这种方式是有效的。这很有趣:)

似乎你在混合东西。

mod_rewrite用于隐藏复杂的网址,并使其更简单(一般来说)。

你说的时候错了 “www.site.com/page.php?page=merchandise”到www.site.com/merchandise“

真实的可能恰恰相反:

  • 您希望网上冲浪者输入“http://www.site.com/merchandise
  • 您希望服务器将“http://www.site.com/merchandise”更改为“http://www.site.com/page.php?page=merchandise
  • 您没有得到的是99.9999%的网站管理员不希望客户端看到真实网页是“http://www.site.com/page.php?page=merchandise

...

这就是mod_rewrite的内容:它会查看传入的网址,并在内部修改 。因此,webdevelopper(=你)可以使用RewriteRule转换网址,并根据需要制作任何内容,但总是进入服务器。唯一的例外是当您希望明确地将客户端重定向到另一个URL时,您可以使用“[F]”指令,这意味着“转发”。

希望这有帮助