2013-07-22 100 views
1

我有一个主要用PHP编码的网站,但我试图将我的动态php网址重写为静态HTML网址。.htaccess重写而不更改网址

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

我缺少什么?

回答

2

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

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

双方将导致服务器外部重定向浏览器,告诉它“你要找因为不在那个URL,你需要去这个完全不同的URL“。强制浏览器在其地址栏中显示新位置。

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