htaccess使用静态网址屏蔽动态网址

时间:2009-08-05 23:09:17

标签: url .htaccess mod-rewrite mask

我正在尝试用.htaccess做一些我不确定可以做的事情。

我做的第一件事是使用以下代码隐藏.php扩展名:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

效果很好。

现在我正在尝试做什么似乎无法弄清楚如下:

当用户在浏览器地址栏中键入“mywebsite.com/products?id=12345”时,我希望服务器根据ID提供正确的产品页面,但会在地址栏中显示为“mywebsite.com” /产品“无论产品ID是什么。

这可能吗?如果是的话怎么样?

由于

2 个答案:

答案 0 :(得分:0)

以干净的方式实际上这是不可能的。要更改地址栏,您需要发送实际的HTTP重定向。这意味着您将从浏览器获得一个新请求,无论您将其重定向到哪个,依此类推,您将不再拥有该产品ID。

有两种方法可以解决这个问题:

  • 让您的服务器有状态
  • 将产品存储在Cookie中

这两个都是坏主意。

你为什么要这样做呢?您想确保您的用户无法为您的产品添加书签吗?这似乎是用户敌对的。

答案 1 :(得分:0)

我最终使用ajax和sessions来使用户无缝过滤过程。我想我用htacess文件做的事情是不可能的。不管怎样,谢谢!