2009-08-05 85 views
0

我试图做一些.htaccess,我不知道可以做到。我做htaccess掩码动态网址与静态网址

的第一件事是隐藏用下面的代码的扩展名为.php:

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

的伟大工程。

现在我想要做的,似乎无法找出如下:

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

这可能吗?如果是的话如何?

谢谢

+0

是否要重定向到mywebsite.com/product?或者你只是想使用/产品?id = 12345? – rpjohnst 2009-08-05 23:17:50

+0

我不想重定向,我希望服务器以“/ products?id = 12345”的形式提供页面,但无论产品ID是否在浏览器的地址栏中显示为“/ products”。 – Enkay 2009-08-05 23:39:48

回答

0

这不是一个干净的方式。要更改地址栏,您需要发送实际的HTTP重定向。这意味着您将从浏览器获得新的请求,无论您将它们重定向到哪个位置,等等,第二次请求都不会再有产品ID。

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

  • 让您的服务器状态
  • 店的产品在cookie

这两者都是馊主意。

为什么你想这样做呢?你想确保你的用户不能为你的产品添加书签吗?这似乎是非常用户敌对的。

+0

其实我为了提出问题而简化了这个问题。 产品页面使用动态过滤系统,仅显示当前库存的选项组合。结果页面看起来像“products?color = red&category = 456”。 我不希望人们能够为特定的搜索添加书签,以防止选项组合不再存在时,他们将得到一个空的结果页面。 如果没有办法用htaccess来做到这一点,我可能会改变过滤系统使用php会话来隐藏客户选择,而不是使用URL变量。 – Enkay 2009-08-05 23:49:19

0

我结束了使用AJAX和会话,使过滤过程无缝的用户。我想我试图做的是不可能与一个htacess文件。不管怎么说,还是要谢谢你!