В тестовом задании указали создать форум не используя mod rewrite( Nepoužívejte mod rewrite, abychom si nemuseli konfigurovat u nás.), но сайт без этих параметров работать не будет: RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php Что делать, подскажите пожалуйсто?!
почему это не будет? как сделаешь так и будет ... ссылки только все будут не ЧПУ .... то есть не вида /forum/avto/4/5, а что-нибудь index.php?theme=avto&cat=4&sub=5 .... хотя бы я с таким заданием настороженно отнесся, ибо наоборот все делают
ErrorDocument 404 FallbackResource Но у обоих способов есть свои недостатки, поэтому обычно используют mod_rewrite, если говорить об апаче. --- Добавлено --- @ADSoft, можно еще использовать PATH_INFO. Первый компонент пути должен быть именем фронта, а дальше уже все, как обычно. --- Добавлено --- Может, речь просто об использовании множественных точек входа, что для форумов часто практикуется. «В тестовом задании указали создать форум» – и как долго вы планируете выполнять этот тест? Даже если сделаете быстро и хорошо, вас попрут с вероятностью 99,9%, воспользовавшись результатами вашей работы.
На самом деле большинство форумных движков такие — без ЧПУ. И пхп.ру только в 2016 переключился на движок со слагами в URL. Вот гляньте в историю: php.ru/forum/viewtopic.php?f=13&t=4537&start=210 Наверное так сформулировали для того, чтобы проверить как претендент справится без готовых фреймворков с маршрутами. Для теста это нормально.
Спс за подсказку. Учился делать с ЧПУ, поэтому и не понял про мод. Буду сейчас разбираться как сделать без ЧПУ, если кинете какие-либо ссылки было бы чудесно!
Много точек входа, GET-параметры – слыхал? P.S. Также упомянутая мной PATH_INFO. Список ссылок поможет сформировать поисковик
Посмотрите на правильном ли я пути: $action= isset($_GET['action']) ? $_GET['action'] : 'community'; switch($action){ case 'community': require ('views/community.php'); break; case 'view-topic': require ('views/topic.php'); break; case 'login': require ('views/login.php'); break; case 'register': require ('views/register.php'); break; } это вместо массива с роутами как с ЧПУ? <a href="?action=view-topic&id=<?= $row['id'] ?>">Тема</a> --- Добавлено --- Вернее в каждом кейсе свой контроллер?
@wade003 это возможный вариант. имея в уме MVC, я бы таки сделал отдельные файлы, т.е. точки входа - контроллеры. а не один файл с параметром "имя контроллера".
Это тот же единый фронт, только хуже. Раз уж пошел в эту сторону, просто прогони через массив с именами для валидации, чем городить это убожество. P.S. Имена для поиска можно сделать ключами ассоциативного массива, а не значениями. Так поиск будет выполняться немного быстрее. --- Добавлено --- P.P.S. Можно не делать расхождений в именах вроде view-topic и topic, чтобы использовать один набор имен, а не два взаимосвязанных.