e-comm网站PHP中产品的独特网址

时间:2014-08-12 05:00:22

标签: php

我不确定这是不是一个愚蠢的问题,但我正在创建一个e-comm网站,我希望尽可能专业和安全。

我希望每个产品都有自己独特的URL以便于访问,但我现在还不确定如何执行此操作我正在使用 GET 变量动态创建唯一的页面。

看起来像这样:

example.com/product?product=1

正如您所看到的,这不是一种非常容易分离产品的方式(使用唯一ID),而且在使用数据库方面也不是很安全。

我想要的是独特的网址:

example.com/products/unique-product-name

我希望能够使用这样的网址,同时仍然保持简单的数据库使用。

如何快速简单地完成此操作而无需为每个产品创建单独的页面?

3 个答案:

答案 0 :(得分:4)

首先,您需要为数据库中的每个产品添加唯一别名字段,以便您可以通过GET方法访问您的产品,如下所示:

www.example.com/product.php?alias=YOUR-ALIAS

然后您可以使用 mod_rewrite www.example.com/products/YOUR-ALIAS映射到上述链接。

为了做到这一点,你必须创建一个名为.htaccess的文本文件(注意:没有文件扩展名,文件的全名是.htaccess),其中包含以下规则:

RewriteEngine on
RewriteRule ^products/(.+)$  /product.php?alias=$1 [L]

然后,您必须将.htaccessproduct.php文件上传到服务器的根目录。

答案 1 :(得分:1)

我解决了这个问题,并在我的所有3个测试服务器上运行了相同的实例。对于他们中的两个人来说,我只需要从chiwangc的答案中取得领先的前锋:

RewriteEngine on
RewriteRule ^products/(.+)$  product.php?alias=$1 [L]

我不是百分之百确定为什么在某些情况下会出现这种情况。

答案 2 :(得分:0)

我已经为那种类型的许多项目工作了。 请添加您的.htaccess文件

RewriteEngine on
RewriteRule  ^products/([A-Za-z0-9-]+)/?$    products.php?alias=$1    [NC,L] 

并像这样使用锚标记

<a href"products/<?php echo $variable['alias']; ?>">product name</a>