0

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

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

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

效果很好。

现在我正在尝试做但似乎无法弄清楚的是以下内容:

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

这可能吗?如果是怎么办?

谢谢

4

2 回答 2

0

以一种干净的方式,这实际上是不可能的。要更改地址栏,您需要发送一个实际的 HTTP 重定向。这意味着您将收到来自浏览器的新请求,其中包含您将它们重定向到的任何内容,依此类推,您将不再拥有产品 ID。

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

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

这两个都是坏主意。

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

于 2009-08-05T23:15:39.887 回答
0

我最终使用 ajax 和会话来使过滤过程对用户来说是无缝的。我想我试图用 htacess 文件做的事情是不可能的。不管怎么说,还是要谢谢你!

于 2009-08-06T02:55:00.573 回答