Ниже представлен файл.htaccess, который я создал с разных сайтов, которые я запускал в прошлом, ни одна из которых не связана с поведением RESTful, это было бы первым. Из этого я, кажется, просто разбиваю его. Этот файл htaccess находится в корневом каталоге сайта (например: www или public_html).
Все выглядит по порядку, но просто не делает того, чего я ожидаю, и Im не на 100% уверен, почему. Я только хочу, чтобы папка api стала моим основным успокоительным сервисом. Поэтому любые вызовы domain.com/api/должны направляться через основной обработчик, который я придумаю, в этом случае index.php в папке /api/. Прямо сейчас все, что у меня есть, это index.php - это строка "Тестирование" только для проверки правил htaccess ниже. Я даже не вижу, что в браузере появилось "Тестирование", я поработал с ним несколькими разными способами, и лучше всего я получил "No Input file" ("Нет файлов ввода") каких-либо идей?
Options +FollowSymLinks -MultiViews
ErrorDocument 404 /index.php?error=404
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/api/(.*)$ /api/index.php/$1 [L,QSA,NC]
</IfModule>
Ведущая косая черта в правиле перезаписи не будет соответствовать. Поэтому domain.com/api/
никогда не будет работать так, как вы сейчас. RewriteRule
игнорирует ведущий " /
" в URI. Вы можете удалить ведущую /
перед папкой api в начале правила или использовать ?
чтобы сделать его необязательным, и таким образом он будет работать в httpd.conf или файле htaccess. Очистите кеш и попробуйте это обновление.
Вы должны это сделать, и это будет немного проще.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?api/(.*)$ /api/index.php [L,QSA,NC]
</IfModule>
Тогда в index.php вы можете сделать
$request = $_SERVER['REQUEST_URI']);
domain.com/api/
дает мне файл index.php, однако переход наdomain.com/api/foo/bar/bazz
дает мнеNo input file specified.