不同产品的不同地址
Different addresses for different products
我有一双 table 鞋(编号、鞋名、颜色、品牌、价格、图片名称、可用)。我正在尝试通过我的网站在线销售鞋子。目前发生的情况是,catalog.php(我网站上的一个页面)显示了我 table 'shoes' 中的所有鞋子。这是循环内的代码。
echo "<div class='shoe-view'>";
echo "<img class='show-view-image' src='scripts/shoes/uploads/".$result["imagename"]."' alt='".$result["imagename"]."'/>";
echo "<form action='viewshoe.php' method='post'>";
echo "<button value='".$result["id"]."' name='messagebutton' class='send-message'>View Shoe</button>";
echo "<input value='".$result["shoename"]."' name='shoename' type='hidden'/>";
echo "</form>";
echo "</div>";
每双鞋都有一个查看鞋子的按钮,此按钮指向 viewshow.php(我网站上的另一页),其中显示了有关鞋子的所有详细信息。这是它的样子:
echo "<div class='shoe-view'>";
echo "<img class='show-view-image' src='scripts/shoes/uploads/".$result["imagename"]."' alt='".$result["imagename"]."'/>";
echo "<p class='sub-heading desc catalogfont' style='color:rgb(184, 55, 60);'>".$result["shoename"]."</p>";
echo "<p class='content catalogfont' style='font-weight:bold;'>".$result["price"]."</p>";
echo "<p class='content catalogfont' style='font-weight:bold;'>".$result["Color"]." : ".$result["brand"]."</p>";
echo "<form action='buyshoe.php' method='post'>";
echo "<button value='".$result["id"]."' name='messagebutton' class='send-message'>Buy Shoe</button>";
echo "</form>";
echo "</div>";
这是我的问题:像 flipkart.com 这样的电子商务网站在其网站上的每种产品都有不同的地址。
访问 http://www.flipkart.com/mens-footwear/casual-shoes/pr?sid=osp%2Ccil%2Ce1f&otracker=hp_nmenu_sub_men_0_Casual+Shoes 并查看所有项目在您打开产品时都有不同的地址。这种做法有利于共享产品和搜索引擎优化。我不确定如何为我的每个产品获取不同的地址。我是否在上传期间制作了一个不同的 php(例如 shoe1.php)文件并使用 viewshoe.php 重定向到我的 shoe1?因为目前我所有的鞋子都有一个地址,viewshoe.php.
您是否熟悉在 PHP 中使用 $_GET
查询字符串变量?你只需这样做:
echo '<a href="shoepage.php?shoe_id='.$result['id'].'">'.$result['shoename'].'</a>';
然后在 shoepage.php
从数据库中获取具有匹配 ID 的鞋子。为了更好的搜索引擎优化,您无疑会希望使用鞋子的名称(可能标准化为 URL 友好,如 ?shoe=funky-seven-shoes
)而不是数据库 ID;为那些创建一个新列。
要获得更多 SEO,您需要查看 URL 重写(使用 .htaccess
和 mod_rewrite
)以获得 URL 类似 /shoe/funky-seven-shoes
映射到 shoepage.php?shoe=funky-seven-shoes
等。这是一个 .htaccess 重写规则示例(假设您的鞋子 URL 标识符只有字符 a-z, A-Z, 0-9
、下划线和破折号,根据需要修改):
RewriteEngine on
RewriteBase /
RewriteRule ^shoe/([a-zA-Z0-9_-]*)$ shoepage.php?shoe=
您还可以在表单中使用方法 GET 而不是 POST,以便在地址栏中显示查询字符串。 GET 是所有未明确请求更改 server/database 状态(即插入、更新或删除)的请求的推荐方法。
你的做法是各种错误,但回答你的问题:不要post你的鞋子ID到viewshoe.php
,而是使用GET;并使用服务器重写规则重写 URL。
因此,例如,鞋子可能位于 example.com/viewshoe.php?id=big-red-shoe
。使用以下 .htaccess 重写规则,您将能够在 example.com/shoes/big-red-shoe
.
访问鞋子
RewriteRule ^shoes/([^/]*)/?$ /viewshoe.php?id= [R=301, L]
我有一双 table 鞋(编号、鞋名、颜色、品牌、价格、图片名称、可用)。我正在尝试通过我的网站在线销售鞋子。目前发生的情况是,catalog.php(我网站上的一个页面)显示了我 table 'shoes' 中的所有鞋子。这是循环内的代码。
echo "<div class='shoe-view'>";
echo "<img class='show-view-image' src='scripts/shoes/uploads/".$result["imagename"]."' alt='".$result["imagename"]."'/>";
echo "<form action='viewshoe.php' method='post'>";
echo "<button value='".$result["id"]."' name='messagebutton' class='send-message'>View Shoe</button>";
echo "<input value='".$result["shoename"]."' name='shoename' type='hidden'/>";
echo "</form>";
echo "</div>";
每双鞋都有一个查看鞋子的按钮,此按钮指向 viewshow.php(我网站上的另一页),其中显示了有关鞋子的所有详细信息。这是它的样子:
echo "<div class='shoe-view'>";
echo "<img class='show-view-image' src='scripts/shoes/uploads/".$result["imagename"]."' alt='".$result["imagename"]."'/>";
echo "<p class='sub-heading desc catalogfont' style='color:rgb(184, 55, 60);'>".$result["shoename"]."</p>";
echo "<p class='content catalogfont' style='font-weight:bold;'>".$result["price"]."</p>";
echo "<p class='content catalogfont' style='font-weight:bold;'>".$result["Color"]." : ".$result["brand"]."</p>";
echo "<form action='buyshoe.php' method='post'>";
echo "<button value='".$result["id"]."' name='messagebutton' class='send-message'>Buy Shoe</button>";
echo "</form>";
echo "</div>";
这是我的问题:像 flipkart.com 这样的电子商务网站在其网站上的每种产品都有不同的地址。 访问 http://www.flipkart.com/mens-footwear/casual-shoes/pr?sid=osp%2Ccil%2Ce1f&otracker=hp_nmenu_sub_men_0_Casual+Shoes 并查看所有项目在您打开产品时都有不同的地址。这种做法有利于共享产品和搜索引擎优化。我不确定如何为我的每个产品获取不同的地址。我是否在上传期间制作了一个不同的 php(例如 shoe1.php)文件并使用 viewshoe.php 重定向到我的 shoe1?因为目前我所有的鞋子都有一个地址,viewshoe.php.
您是否熟悉在 PHP 中使用 $_GET
查询字符串变量?你只需这样做:
echo '<a href="shoepage.php?shoe_id='.$result['id'].'">'.$result['shoename'].'</a>';
然后在 shoepage.php
从数据库中获取具有匹配 ID 的鞋子。为了更好的搜索引擎优化,您无疑会希望使用鞋子的名称(可能标准化为 URL 友好,如 ?shoe=funky-seven-shoes
)而不是数据库 ID;为那些创建一个新列。
要获得更多 SEO,您需要查看 URL 重写(使用 .htaccess
和 mod_rewrite
)以获得 URL 类似 /shoe/funky-seven-shoes
映射到 shoepage.php?shoe=funky-seven-shoes
等。这是一个 .htaccess 重写规则示例(假设您的鞋子 URL 标识符只有字符 a-z, A-Z, 0-9
、下划线和破折号,根据需要修改):
RewriteEngine on
RewriteBase /
RewriteRule ^shoe/([a-zA-Z0-9_-]*)$ shoepage.php?shoe=
您还可以在表单中使用方法 GET 而不是 POST,以便在地址栏中显示查询字符串。 GET 是所有未明确请求更改 server/database 状态(即插入、更新或删除)的请求的推荐方法。
你的做法是各种错误,但回答你的问题:不要post你的鞋子ID到viewshoe.php
,而是使用GET;并使用服务器重写规则重写 URL。
因此,例如,鞋子可能位于 example.com/viewshoe.php?id=big-red-shoe
。使用以下 .htaccess 重写规则,您将能够在 example.com/shoes/big-red-shoe
.
RewriteRule ^shoes/([^/]*)/?$ /viewshoe.php?id= [R=301, L]