我的重定向过程显示了一些疯狂的东西。整个循环的第一部分工作得很好(如果只输入第一个元素)。
可能的网址如下所示:
www.site.com/category
www.site.com/category/product
但是也:
www.site.com/cart
使用 site.com/jeans 就可以了。但是当你点击一个产品时,会发生一些奇怪的事情。
仍然包含 categorie.php 文件(用于显示类别),之后包含 product.php 文件。
与购物车页面 (http://www.site.com/winkelwagen/) 的故事相同。
所以我的包含在某些时候是错误的。Winkelwagen 是我网站上的一个文件夹,它有一个索引文件。它应该包括http://www.site.com/winkelwagen/index.php而不是 categorie.php。
路线代码:
<?php
$mult = Array();
if( ! empty( $_SERVER[ 'REQUEST_URI' ] ) ) {
$mult = explode ( '/', substr ( $_SERVER[ 'REQUEST_URI' ], 1 ) );
} else if( ! empty( $_SERVER[ 'ORIG_PATH_INFO' ] ) ) {
$mult = explode ( '/', substr ( $_SERVER[ 'ORIG_PATH_INFO' ], 1 ) );
} else if( ! empty( $_SERVER[ 'PATH_INFO' ] ) ) {
$mult = explode ( '/', substr ( $_SERVER[ 'PATH_INFO' ], 1 ) );
}
if(empty($mult[0]))
{
include("comingsoon/index.html");
}
if(!empty($mult[0]) && empty($mult[1]))
{
$file = "$mult[0].php";
if($mult[0] == "index2")
{
include("index2.php");
die;
}
// if file exists include file
if(file_exists($file))
{
include($file);
}
else
{
$file2 = "/$mult[0]/index.php";
// if folder index file exists include that file
if(file_exists($file2))
{
include($file2);
}
else {
// if folder index file doesn't exist, send to category page
$_GET['q'] = $mult[0];
include("categorie.php");
}
}
}
if(!empty($mult[0]) && !empty($mult[1]))
{
if($mult[0] == "add")
{
$_GET['addid'] = $mult[1];
include("addtocart.php");
}
elseif($mult[0] == "remove")
{
$_GET['removeid'] = $mult[1];
include("deletefromcart.php");
}
// check if folder exists (first part of the url)
elseif(is_dir($mult[0]))
{
// check if file .php (second part of the url) exists
$filenew = "$mult[0]/$mult[1].php";
if(file_exists($filenew))
{
// include that file
include("$mult[0]/$mult[1].php");
}
else
{
// second file does not exist, do something
}
}
else
{
// folder does not exist so redirect to product page
$_GET['c'] = $mult[0];
$_GET['p'] = $mult[1];
include("product.php");
}
}
?>
我尝试删除 categorie.php 文件,但它仍然显示(比如,到底怎么了?!)
我很高兴得到答案——我完全不知道我做错了什么。
也很高兴知道:当我注释掉路由代码中的 include(categorie.php) 部分时,仍然包含该文件...