Несколько проблем с моим php MVC с правильным путем

#php #.htaccess #model-view-controller

Вопрос:

Создание небольшого инструмента php MVC, но я столкнулся с парой проблем.

Первая проблема заключается в том, что ресурсы(активы) должны иметь имя общей папки внутри пути, чего я не хочу

 //current
<link rel="stylesheet" href="public/assets/core.css">
//what I want 
<link rel="stylesheet" href="assets/core.css">
 

Вторая проблема заключается в том, что маршрутизация не работает. Ну, все маршруты работают, но когда это просто косая черта, она перенаправляется обратно на локальный хост(в моем случае). Мне действительно нужно вернуться домой.

    <ul>
       <li>
           <a href="/">Home</a>// will redirect to localhost
       </li>
       <li>
           <a href="about">About</a>//this works /project-x/about
       </li>
   </ul>
 

структура проекта

 project-x/
-.htaccess
-public/
--assets/
---style.css
--index.php
-app/
-src/
 

.htaccess

 RewriteEngine On

# Stop processing if already in the /public directory
RewriteRule ^public/ - [L]

# Static resources if they exist
RewriteCond %{DOCUMENT_ROOT}/public/$1 -f
RewriteRule (. ) public/$1 [L]

# Route all other requests
RewriteRule (.*) public/index.php?path=$1 [L,QSA]
 

Комментарии:

1. Вы должны установить корневой каталог документов веб — серверов в качестве общей папки. Если вам нужно добавить /public перед активами, это, скорее всего, означает, что вы установили его в папку выше.

2. Я бы также рекомендовал вам использовать правильный маршрутизатор , который значительно упростит создание дополнительных пользовательских маршрутов. Это также делает ваш код более переносимым, так как вы пишете маршруты в своем коде, а не в htaccess (который предназначен только для веб-сервера Apache).