#php #.htaccess #include
#php #.htaccess #включить
Вопрос:
Итак, я создаю веб-сайт и объединяю его с includes в index.php досье. Проблема в том, что веб-сайт открывается и показывает первую страницу идеально, но ни одна из ссылок на языки не работает! Вот мой код:
Индексный файл:
<?php
$languages = array("eng","lat");
$sections = array("home");
$sectionTitles = array("eng" =>array(
"WHERE CAN YOU FIND US?",
"WHO ARE WE?",
"CONTACTS",
),
"lat"=>array(
"KUR MŪS ATRAST?",
"PAR MUMS",
"KONTAKTI",
));
$lang = "lat";
$section = "home";
$content = explode("/", $_SERVER['REQUEST_URI']);
if (!empty($content[1]) amp;amp; (in_array($content[1], $languages))) { $lang = $content[1];}
if (!empty($content[2]) amp;amp; (in_array($content[2], $sections))) { $section = $content[2];}
$sectionTitles = $sectionTitles[$lang];
include ("header.php");
include ("$lang/$section.php");
include ("footer.php");
?>
файл .htaccess:
RewriteEngine On
RewriteCond %{REQUEST_URI} !.(php|css|js|gif|png|jpe?g|pdf|eot|svg|ttf|woff|ico)$
RewriteRule (.*)$ /index.php [L]
ссылка в моем заголовочном файле:
<a href="/eng/<?=$section?>">eng</a>
Заранее спасибо!
Комментарии:
1. Что говорит print_r($content)?
2. Массив ( [0] => [1] => ) Итак, как мне это исправить? 🙁
3. Хорошо, это означает, что либо $ _SERVER[‘REQUEST_URI’] пуст, тогда у вас какая-то проблема с конфигурацией вашего веб-сервера, либо он содержит что-то неожиданное.
4. Когда я меняю ссылку на <a href=»/eng/home»>ENG</a>, он говорит, что этот файл не существует, даже если он существует.
5. Спасибо, @colburton, свяжусь с моим серверщиком.
Ответ №1:
Измените файл htaccess на
RewriteEngine On
RewriteCond %{REQUEST_URI} !.(php|css|js|gif|png|jpe?g|pdf|eot|svg|ttf|woff|ico)$
RewriteRule (.*)$ /index.php?_url=$1 [L]
Затем вы можете использовать
$content = explode("/", $_GET['_url']);
Комментарии:
1. Большое вам спасибо, покажу это моему серверному парню.