.htaccess — PHP-маршрутизация не работает, если не используется абсолютный путь с index.Stack Overflow

С пакетом nikic / fast-route PHP для URL-маршрутизации:

PHP-маршрутизация URL не работает, пока я не укажу весь путь для маршрута, а не просто название маршрута:

Например, чтобы создать маршрут для /hello-worldЯ должен указать весь путь: localhost/myProject/public/index.php/hello-world

$r->addRoute('GET', '/localhost/myProject/public/index.php/hello-world', function () {
echo 'Hello World';
});

Есть ли что-то, что нужно сделать в файле .htaccess?

Особенности текущего проекта:

Я не использую фреймворк, но урок Патрика Луиса по No Framework на GitHub: https://github.com/PatrickLouys/no-framework-tutorial

Я использую XAMPP на Fedora Linux в качестве веб-сервера

мой код находится в моем / home каталоге, а веб-сервер находится в / opt / lampp … я связал их символической ссылкой: sudo ln -s /home/... /opt/lampp/htdocs (если это имеет значение) … Я знаю, что учебник опирается на встроенный сервер PHP (php -S localhost:8000)

0

Решение

Может быть, это неправильно, но вместо /helloworld ты должен написать ./helloworld

0

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

Вы должны поместить свой код (файлы) в папку htdocs по следующему пути:

/opt/lampp/htdocs/

Затем создайте папку с именем hello-world, эта папка должна находиться внутри папки htdocs следующим образом:

/opt/lampp/htdocs/hello-world

Затем откройте терминал и получите доступ как пользователь root, измените каталог на hello-world, а затем вы должны дать разрешение на папку следующим образом:

chmod 667 hello-world -R

-R используется для разрешения доступа к папке hello-world и всему файлу внутри нее. И это все! Теперь, когда вы попробуете localhost / hello-world, вы увидите, что ваш проект теперь работает!

Примечание. Если это не помогло, попробуйте создать php-файл с именем test.php в папке htdocs по пути / opt / lampp / htdocs /. Этот файл должен иметь это внутри:

<h1><b><?php echo "hello wordl!"; ?></b></h1>

Снова вы должны дать файлу разрешение (chmod 667). Затем скопируйте это и вставьте в панель навигации вашего браузера:

localhost/test.php

Вы должны увидеть в своем браузере большой привет мир в смелом стиле.

0

Мое быстрое решение:

1- Создать .htaccess файл в публичном каталоге. Все запросы будут направлены на index.php

2. Добавьте функцию для анализа всего URL-адреса, переданного для получения правильного URI. В основном функция обрезает весь URL как localhost/public/index.php/hello-world и возвращается /hello-world, /hello-world будучи маршрутом, зарегистрированным нашим маршрутизатором быстрого маршрута, соответствующий контроллер будет вызываться при получении такого URL-адреса нашим веб-сервером.

Источник (пояснения и пример кода): http://blogs.shephertz.com/2014/05/21/how-to-implement-url-routing-in-php/

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