我有一个类别页面,通过循环列出数据库中的所有项目。
类别页面中的每个项目都链接到单独的产品页面 (product.php),该页面与类别页面位于同一目录中。产品页面是动态的,其内容取决于 $_GET 变量的值:
生成 product.php 页面的主类别页面的链接是:
<a href="product.php?subject=<?php echo urlencode($list_savory["product_name"]); ?>">
生成的 product.php URL 显示为:
shop/popcorn/product.php?subject=Bacon+and+Cheddar+Popcorn
我添加了以下 .htaccess 代码以删除查询字符串并将“+”替换为破折号:
RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} !no-redir [NC]
RewriteCond %{QUERY_STRING} (^|&)subject=([^&]+) [NC]
RewriteRule ^(.*)/product.php$ $1/%2? [NC]
RewriteRule ^([^+\s]+)(?:[+\s]+)([^+\s]+)((?:[+\s]+).*)$ $1-$2$3 [DPI,N]
RewriteRule ^([^+\s]+)(?:[+\s]+)([^+\s]+)$ $1-$2 [R=301,DPI,L]
在 .htacess 代码之后,生成的 URL 格式为
shop/popcorn/Bacon-and-Cheddar-Popcorn
.htaccess 代码可以完美地重新格式化 URL,但我无法访问 $_GET 变量,因此页面无法正确加载。如何修改 .htaccess 代码以便传递 $_GET 变量?