У меня есть веб-приложение MVC в стиле Laravel. Не написано на Laravel, но похожая концепция.
В моем устройстве разработчика мое веб-приложение находилось в собственном «домене», а папка /public
была корневым документом.
Структура папок
MyProject
|
+-- App
| |
| +-- Models
| |
| +-- Views
| |
| +-- Controllers
|
+-- public (doc root)
|
+-- htaccess
+-- index.php
Я использовал этот .htaccess
файл для маршрутизации всего трафика через файл index.php, который находился в общей папке.
Htaccess
# Remove the question mark from the request but maintain the query string
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
Так что, когда вы посещали http://myinternalproject.com,, вы могли нормально использовать веб-приложение.
Теперь для производства мне нужно переместить проект и все его файлы в его собственную папку в домене нашей компании. не может быть поддоменом в соответствии с Администратором. (Это решило бы все мои проблемы.)
Так что к нему нужно обращаться через www.mydomain.com/apps/myproject/
.
Навигация по: www.mydomain.com/apps/myproject/public
работает нормально, и сайт появляется.
При переходе за пределы «домашней страницы» все ссылки переходят на: www.mydomain.com/{controller}/{action}
вместо того, чтобы жить в новой подпапке.
Есть ли способ переписать все ссылки в моем приложении, чтобы автоматически перейти на /apps/myproject/public
(поскольку именно там живет index.php), не просматривая все возможные ссылки и не ставя префикс /apps/myproject/public
?
Я пробовал варианты добавления новой структуры папок к htaccess
, но не могу заставить ее работать.
RewriteBase /apps/myproject/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /apps/myproject/public/^(.*)$ /apps/myproject/public/index.php?$1 [L,QSA]