我有一个关于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]
它很简单,应该可以工作。但它不会隐藏地址栏中的实际地址。这是我的问题。否则它会转到正确的页面。
感谢任何帮助。
答案 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
”http://www.site.com/page.php?page=merchandise
” ...
这就是mod_rewrite
的内容:它会查看传入的网址,并在内部修改 。因此,webdevelopper(=你)可以使用RewriteRule
转换网址,并根据需要制作任何内容,但总是进入服务器。唯一的例外是当您希望明确地将客户端重定向到另一个URL时,您可以使用“[F]
”指令,这意味着“转发”。
希望这有帮助