1

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

但我希望地址栏仍保留为静态 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

我错过了什么?

4

1 回答 1

2

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

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

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

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

于 2013-07-22T18:47:33.303 回答