我不确定这是不是一个愚蠢的问题,但我正在创建一个e-comm网站,我希望尽可能专业和安全。
我希望每个产品都有自己独特的URL以便于访问,但我现在还不确定如何执行此操作我正在使用 GET 变量动态创建唯一的页面。
看起来像这样:
example.com/product?product=1
正如您所看到的,这不是一种非常容易分离产品的方式(使用唯一ID),而且在使用数据库方面也不是很安全。
我想要的是独特的网址:
example.com/products/unique-product-name
我希望能够使用这样的网址,同时仍然保持简单的数据库使用。
如何快速简单地完成此操作而无需为每个产品创建单独的页面?
答案 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]
然后,您必须将.htaccess
和product.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>