.htaccess重写而不更改URL

时间:2013-07-22 18:44:17

标签: apache .htaccess

我有一个主要用PHP编码的网站,但我正在尝试将我的动态php网址重写为静态HTML网址。

但我希望地址栏仍然保留为静态HTML链接。

我正在尝试通过.htaccess完成此操作(我无法访问httpd.conf,因为我托管在共享帐户上)。这是我的.httaccess文件中写的内容:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^inventory-search-([^.]+)-by-([^.]+).html$ http://www.pianostudiosandshowcase.com/inventory.php?search=$1&by=$2 [R]

但我无法将地址栏保留为静态HTML链接。

这是一个显示我的意思的链接:

http://www.pianostudiosandshowcase.com/inventory.php?search=manufacturer&by=1

我错过了什么?

1 个答案:

答案 0 :(得分:2)

您需要删除重写规则中的R标志以及协议/域名:

RewriteRule ^inventory-search-([^.]+)-by-([^.]+).html$ /inventory.php?search=$1&by=$2 [L]

两者都会导致服务器从外部重定向浏览器,告诉它“您要查找的内容不在该URL,您需要转到这个完全不同的URL”。强制浏览器在其地址栏中显示新位置。

如果您在内部重写它,浏览器不知道它作为请求发送的URI已被更改,因此地址栏保持不变。