Как настроить htaccess в Kirby CMS для одностраничного приложения

Я разрабатываю одностраничное приложение поверх Kirby CMS, и мне нужно, чтобы большинство страниц перенаправлялось на домашнюю страницу, чтобы я мог обрабатывать маршрутизацию во внешнем интерфейсе.

Некоторые страницы, т.е. / api__data и все, что связано с панелью, все же должны быть доступны через Кирби.

У меня возникли проблемы с настройкой файла .htaccess для реализации правильных перенаправлений.

В настоящее время .htaccess выглядит так:

# Kirby .htaccess

# rewrite rules
<IfModule mod_rewrite.c>

# enable awesome urls. i.e.:
# http://yourdomain.com/about-us/team
RewriteEngine on

# make sure to set the RewriteBase correctly
# if you are running the site in a subfolder.
# Otherwise links or the entire site will break.
#
# If your homepage is http://yourdomain.com/mysite
# Set the RewriteBase to:
#
# RewriteBase /mysite

# In some enviroments it's necessary to
# set the RewriteBase to:
#
# RewriteBase /

# block text files in the content folder from being accessed directly
RewriteRule ^content/(.*)\.(txt|md|mdown)$ index.php [L]

# block all files in the site folder from being accessed directly
# except for requests to plugin assets files
#RewriteRule ^assets/plugins/([a-zA-Z0-9\.\-_%=]+)/(.*)$ site/plugins/$1/assets/$2 [L,N]
#RewriteCond $1 !^plugins/[a-zA-Z0-9\.\-_%=]+/assets/.*
RewriteRule ^site/(.*) index.php [L]

# block direct access to kirby and the panel sources
RewriteRule ^(kirby|panel\/app|panel\/tests)/(.*) index.php [L]

# make panel links work
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^panel/(.*) panel/index.php [L]

# make site links work
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) index.php [L]

</IfModule>

# Additional recommended values
# Remove comments for those you want to use.
#
# AddDefaultCharset UTF-8
#
# php_flag short_open_tag on

Спасибо за помощь в продвижении!

0

Решение

Поэтому, чтобы заставить работать приложение с одной страницей, мне не нужно было редактировать файл htaccess. Я добавил следующую строку в файл site.php (в функции посещения):

if (!preg_match("/api_/i", $uri)) {
return $this->page = $this->homePage();
}

Это гарантирует, что все URL будут перенаправлены на дом (кроме моих вызовов API)

0

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

Других решений пока нет …

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