У меня есть приложение, которое управляет марионеток маршруты, но я не хочу обращаться с ними для запросов API вызовов в server.com/api/anything/at/all.htaccess правило, казалось бы, игнорировали
Мое правило выглядит это на данный момент, но Марионетки, кажется, всегда ловить его, даже если это для/API/*
# ------------------------------------------------------------------------------
# | Marionette |
# | If it's not for /api/*, then handle it |
# ------------------------------------------------------------------------------
<ifModule mod_rewrite.c>
DirectorySlash Off
RewriteEngine On
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteCond %{REQUEST_URI} !^/api/ [NC]
RewriteRule ^(.*)index.php $1 [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteRule (.*) index.php
</ifModule>
# ------------------------------------------------------------------------------
# | Phalcon |
# | If it fell through, handle with Phalcon |
# ------------------------------------------------------------------------------
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
Может кто-нибудь сказать мне, что я сделал неправильно здесь, пожалуйста? Благодарю.
Редактировать: Если это дает какую-либо ясность, вышеуказанный .htaccess находится в моей/общей папке. В корневой папке у меня есть:
# ------------------------------------------------------------------------------
# | Phalcon |
# ------------------------------------------------------------------------------
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
Это общедоступное переписывание работает нормально. Я просто подумал, что поделюсь им, если что-то об этом повлияет на публику, о котором я не думаю. Благодаря!
Я заменил мой блок с вашими, и я все еще получаю тот же ответ. server.com/ - Marionette server.com/api/ - Marionette server.com/api/test - Marionette – Drew
Да, это сработало - спасибо. Любая идея о том, как я гарантирую, что он работает только на server.com/api/x/y/z? Я тестировал с server.com/marionette/api/ и потому, что он содержал «api», он чувствовал, что это правило действует на phalcon. Итак, я хочу, чтобы правило утверждало, что/api/находится в начале? – Drew
Я изменил правило дальше, чтобы соответствовать '/ api /' только при запуске. – anubhava