система управления контентом — использование переменных pathinfo делает относительные пути не работающими

Я надеюсь достичь какого-то вида CMS самостоятельно. Я вижу, что могу перехватывать переменные окружения Apache, известные как PATH_INFO, поэтому я могу создавать динамические разделы на моем сайте (как это делает joomla).

например:

stackoverflow.com/index.php/section1/article22

В настоящее время я разрабатываю функцию, чтобы узнать, какой раздел и статью запрашивали, выполнив это:

$url_seccion = $_SERVER['PATH_INFO'];
$secciones_array =  array_values(array_filter(explode('/', $url_seccion)));

Эта часть работает нормально, проблема, которую я имею, состоит в том, что все относительные пути, которые я имел теперь, сломаны. Может кто-нибудь объяснить мне, почему это происходит и что я могу сделать, чтобы решить это? (Пожалуйста, не говорите мне, что я должен использовать абсолютные пути …)

4

Решение

пример:

$url = "stackoverflow.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, чтобы найти его идентификатор, а затем Article

Для перенаправления всех запросов в index.php используйте:

.Htaccess

Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteBase /

RewriteCond $0 !^(index\.php|css|js|img)
RewriteRule ^(.*)$ index.php [L]

index.php:

$url = addslashes($_SERVER['REQUEST_URI']);
$myArray = array_slice( explode('/', $url), 1 );
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]