eucalipt
@eucalipt
Самоделкин.

Как организовать прыжок с любого адреса на один файл обработчика запроса?

Просматривал структуру WordPress'а, узнал, что обработкой всех страниц в этой CMS занимается файл page.php. Я хочу реализовать что-то подобное (или нет, ибо точно не знаю, как там что работает).

Короче говоря, можно ли вообще реализовать такое?
При вводе любой ссылки на любую страницу моего сайта (пусть даже несуществующую), например
my.site/eijweoungerkg
или при переходе по ссылке на эту страницу при помощи htaccess происходит переадресация на этот самый page.php, который смотрит на то, что стоит после слэша, и если страница с таким адресом есть в БД, то он ее загружает, а если нет, то происходит 404 редирект?

И если можно, то как передать в page.php ту самую ссылку, на которую пытается перейти юзер?

И вообще, насколько грамотным является такой подход, может я просто нерациональный метод придумал?
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
для веб-сервера апач
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ page.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
zenaku
@zenaku
Это уже начало реализации mvc.
Вот почитай на хабре как все это реализовать. Ссылка 1 и ссылка 2 и много их

Выдавать страницу из БД - не лучший вариант.

Изучайте php-фреймворки, это вам упростит и разработку и понимание mvc, а также научит многим новым фичам.
Ответ написан
Комментировать
Roon_Boh
@Roon_Boh
Сломав зубы о гранит, продолжаю его рассасывать
1. RewriteEngine On
2. RewriteCond %{REQUEST_FILENAME} -s [OR]
3. RewriteCond %{REQUEST_FILENAME} -l [OR]
4. RewriteCond %{REQUEST_FILENAME} -d
5. RewriteRule ^.*$ - [L]
6. RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
7. RewriteRule ^(.*) - [E=BASE:%1]
8. RewriteRule ^(.*)$ %{ENV:BASE}/page.php [L]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы