2016-01-17 6 views
4

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

, например:

stackoverflow.com/index.php/section1/article22 

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

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

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

+0

Вы можете добавить код, генерирующий относительные пути? – RST

ответ

1

пример:

$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; 
} 

использовать раздел, сохраненный в БД, вы можете использовать отборное найти идентификатор него, а затем Статья

Чтобы перенаправить все запросы к 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); 
+0

Спасибо за код Julio. Но я думаю, что проблема, с которой я сталкиваюсь, не связана с этой частью кода. Это только потому, что я пишу: http://www.example.com/index.php/anotherthing/anotherone/ все относительные пути ... к css ... к изображениям ... все они отображаются как неработающие ссылки , –

+0

проверить ваш .htaccess .it может блокировать каждый запрос –

+0

Ho neat !!! извините, я пропустил эту часть. –