PHP - 使用 pathinfo 变量使相对路径不起作用
PHP - Using pathinfo variables makes relative paths not to work
我希望自己实现某种 cms。我看到我可以捕获 Apache 环境变量,称为 PATH_INFO,所以这样我就可以在我的网站上创建动态部分(就像 joomla 一样)。
例如:
whosebug.com/index.php/section1/article22
目前我正在开发一个功能来找出请求的部分和文章,方法是:
$url_seccion = $_SERVER['PATH_INFO'];
$secciones_array = array_values(array_filter(explode('/', $url_seccion)));
这部分工作正常,我遇到的问题是我现在拥有的所有相对路径都已损坏。有人可以向我解释为什么会发生这种情况以及我该怎么做才能解决它? (请不要告诉我我必须使用绝对路径...)
示例:
$url = "whosebug.com/index.php/section1/article22";
$myArray = array_slice( explode('/', $url), 2 );
echo "section: ". $myArray[0] ."<br /> article: ". $myArray[1]."<br />";
if(isset($myArray[0])) {
$section = $myArray[0];
} else {
$section = "";
}
if(isset($myArray[1])) {
$article = $myArray[1];
} else {
$article = "";
}
switch(strtolower($section)) {
default:
echo "home";
break;
case 'section1':
echo "function for find and show my article: ". $article;
break;
}
要使用保存在数据库中的部分,您可以使用 select 找到它的 ID,然后使用 Article
要将所有请求重定向到 index.php,请使用:
.htaccess
Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond [=11=] !^(index\.php|css|js|img)
RewriteRule ^(.*)$ index.php [L]
index.php:
$url = addslashes($_SERVER['REQUEST_URI']);
$myArray = array_slice( explode('/', $url), 1 );
我希望自己实现某种 cms。我看到我可以捕获 Apache 环境变量,称为 PATH_INFO,所以这样我就可以在我的网站上创建动态部分(就像 joomla 一样)。
例如:
whosebug.com/index.php/section1/article22
目前我正在开发一个功能来找出请求的部分和文章,方法是:
$url_seccion = $_SERVER['PATH_INFO'];
$secciones_array = array_values(array_filter(explode('/', $url_seccion)));
这部分工作正常,我遇到的问题是我现在拥有的所有相对路径都已损坏。有人可以向我解释为什么会发生这种情况以及我该怎么做才能解决它? (请不要告诉我我必须使用绝对路径...)
示例:
$url = "whosebug.com/index.php/section1/article22";
$myArray = array_slice( explode('/', $url), 2 );
echo "section: ". $myArray[0] ."<br /> article: ". $myArray[1]."<br />";
if(isset($myArray[0])) {
$section = $myArray[0];
} else {
$section = "";
}
if(isset($myArray[1])) {
$article = $myArray[1];
} else {
$article = "";
}
switch(strtolower($section)) {
default:
echo "home";
break;
case 'section1':
echo "function for find and show my article: ". $article;
break;
}
要使用保存在数据库中的部分,您可以使用 select 找到它的 ID,然后使用 Article
要将所有请求重定向到 index.php,请使用:
.htaccess
Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond [=11=] !^(index\.php|css|js|img)
RewriteRule ^(.*)$ index.php [L]
index.php:
$url = addslashes($_SERVER['REQUEST_URI']);
$myArray = array_slice( explode('/', $url), 1 );