我有一个包含大量产品的页面。使用以下链接,我可以根据ID选择一个项目,并查看与该项目相关的规格/图片
http://www.example.com/products/index.php?id=20
这将显示ID为20的产品信息。工作正常,所有图像/规格都显示,没有任何内容被破坏。
但每当我尝试实施任何类型的RewriteRule时(我会解释)我的拇指停止显示。
这是我正在尝试的重写规则示例。我一直保持简单,只是为了解决这个问题:
RewriteRule ^products/(.*)/(.*)/$ /products/index.php?id=$1&model=$2 [L]
然后在/products/index.php中,我的产品链接如下所示:
<a href="/products/$product-id/$product-model-name/">Product Name</a>
这很好用,并给我网址,如:
www.example.com/20/product-model-name/
所选产品的信息通过以下脚本显示(我正在进行消毒等,这样可以缩短测试时间):
if (isset($_GET['id']) && isset($_GET['model'])) {
$id = $_GET['id'];
$m = $_GET['model'];
$get_product_stats = mysqli_query($link, "SELECT products.*, company.company_name FROM products INNER JOIN company ON products.company_id=company.id WHERE products.id='$id' AND products.model='$m'");
$row = mysqli_fetch_assoc($get_product_stats);
if (!$row) {
echo 'Error';
exit();
}
$company_name = $row['company_name'];
$product_model = $row['model'];
$product_model_abbr = $row['product_model_abbr'];
if ($row['product_model_version'] == NULL) { $image_directory_name = "/products/$company_name/$product_model_abbr/"; } else $image_directory_name = "/products/$company_name/$product_model_abbr (" . $row['product_model_version'] . ")/";
$top = "$image_directory_name" . "top.jpg";
echo "<div><img src='$top'></div>"; // THIS DISPLAYS FINE.
// echo some more item specifications here
// and lastly:
echo '<div>';
$images = glob($image_directory_name."*_thumb*");
if (!$images) {
echo '<p>Currently no images for this product.</p>'; // I get this error
}
else {
foreach ($images as $image) {
$full = str_replace('thumb','full',$image);
echo '<a href="'.$full.'" target="_blank"><img src="'.$image.'"></a>';
}
}
echo '</div>';
每种产品的图像('top.jpg',拇指和全尺寸图片)直接存储在:
/products/company name/model name/
所以在上面的代码中,在我实现重写之前,顶部的拇指显示出来,并且显示了底部的一组拇指。实施重写后,顶部拇指显示,底部显示不显示。但它们都在同一个目录中,使用相同的变量来访问它们。
我很困惑。有人请救救我,我长期以来一直在反对这一点。
答案 0 :(得分:1)
试试这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} !(\.png|\.jpg|\.gif|\.jpeg|\.bmp)$
RewriteRule ^products/(.*)/(.*)/$ /products/index.php?id=$1&model=$2 [L]