Php 执行重写规则后缺少某些图像
我已经在这个问题上工作了好几个小时,但我觉得我真的很快就能解决它了 为了解决这个问题,我已经把我的网站精简到了最简单的代码,我想我已经找到了给我带来麻烦的那一行,但我只是不知道为什么它会给我带来麻烦。以下是我现在的代码:Php 执行重写规则后缺少某些图像,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我已经在这个问题上工作了好几个小时,但我觉得我真的很快就能解决它了 为了解决这个问题,我已经把我的网站精简到了最简单的代码,我想我已经找到了给我带来麻烦的那一行,但我只是不知道为什么它会给我带来麻烦。以下是我现在的代码: //display all products if (!isset($_GET['id'])) { $result = mysqli_query($link, "SELECT products.*, company.company-name FROM products
//display all products
if (!isset($_GET['id'])) {
$result = mysqli_query($link, "SELECT products.*, company.company-name FROM products INNER JOIN company ON products.company-id=company.id");
if (!$result) {
echo 'Error';
exit();
}
}
//display one product
if (isset($_GET['id'])) {
$id = $_GET['id'];
$get_item_info = mysqli_query($link, "SELECT products.*, company.company-name FROM products INNER JOIN company ON products.company-id=company.id WHERE products.id='$id'");
$row = mysqli_fetch_assoc($get_item_info);
if (!$row) {
echo 'Error';
exit();
}
$company_name = $row['company-name'];
$model_abbreviation = $row['model-abbreviation'];
if ($row['model-version'] == NULL) { $image_directory_name = "$company_name/$model_abbreviation/"; } else $image_directory_name = "$company_name/$model_abbreviation (" . $row['model-version'] . ")/";
}
if (!isset($_GET['id'])) {
$group = array();
while ($row = mysqli_fetch_assoc($result)) {
$group[ $row['company-name'] ][] = $row;
}
foreach ($group as $company_name => $models) {
foreach ($models as $model) {
echo "<a href='$model[id]/'>$model[model-abbreviation]</a>";
}
}
}
if (isset($_GET['id'])) {
$top_thumb = "$image_directory_name" . "top.jpg";
echo "<img src='$top_thumb'>"; echo '</br>';
$images = glob($image_directory_name."*_thumb*");
if (!$images) {
echo 'No images to display.';
}
else {
foreach ($images as $image) {
$full = str_replace('thumb','full',$image);
echo '<a href="'.$full.'" target="_blank"><img src="'.$image.'"></a>';
}
}
}
然后我进入一个产品页面,比如localhost/products/30/
没有图像显示,但是,在页面源代码中,我可以看到它正试图显示图像(虽然我的脚本没有错误,只是一个空白页面),只是路径错误-看起来如下所示:
<img src='Company Name/Model Name (Model Version)/top.jpg'></br><a href="Company Name/Model Name (Model Version)/A_full.jpg"><img src="Company Name/Model Name (Model Version)/A_thumb.jpg"></a>
这就是它断裂的地方
上面的拇指是固定的,可以显示,但是我在尝试glob()下面的拇指时出错-“没有要显示的图像”。源代码甚至不再显示为试图加载它们
所以。我已经非常接近了,我在这上面花了无数个小时。有人知道发生了什么事吗?我猜这与我的$image\u directory\u name path或glob()代码有关……我在心理上非常渴望解决这个问题
编辑:其他信息:当我在浏览器中转到localhost/products/companyname/productname/时,我从代码中的if(!$row)行获得错误。但我转到localhost/products/companyname/productname/imagename.jpg,图像将加载
更新:我甚至尝试从/products/companyname/productname移动我的所有图像/
至/images/companyname/productname/
大拇指还没竖起来。Argh.将重写规则更改为:RewriteRule^products/(\d)/$/products/index.php?id时会发生什么=$1@JonathanCrowe,使用该规则,我得到“此服务器上找不到请求的URL/products/id/”。$id是一个整数,请尝试重写规则^products/(\d+)/$/products/index.php?id=$1,这样可以工作,但不幸的是,底部的拇指仍然无法加载。非常感谢您的回复。我完全被难住了。
<img src='Company Name/Model Name (Model Version)/top.jpg'></br><a href="Company Name/Model Name (Model Version)/A_full.jpg"><img src="Company Name/Model Name (Model Version)/A_thumb.jpg"></a>
if ($row['model-version'] == NULL) { $image_directory_name = "/products/$company_name/$model_abbreviation/"; } else $image_directory_name = "/products/$company_name/$model_abbreviation (" . $row['model-version'] . ")/";