我有一个主要用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
我错过了什么?
答案 0 :(得分:2)
您需要删除重写规则中的R
标志以及协议/域名:
RewriteRule ^inventory-search-([^.]+)-by-([^.]+).html$ /inventory.php?search=$1&by=$2 [L]
两者都会导致服务器从外部重定向浏览器,告诉它“您要查找的内容不在该URL,您需要转到这个完全不同的URL”。强制浏览器在其地址栏中显示新位置。
如果您在内部重写它,浏览器不知道它作为请求发送的URI已被更改,因此地址栏保持不变。