PHP открывает только индексный файл, говорит, что другие не существуют, хотя они существуют

#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. Большое вам спасибо, покажу это моему серверному парню.