перезапись htaccess для restful api


Я создаю API на основе restful и застрял на правилах перезаписи htaccess.

В настоящее время я использую это:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !(.*)\.(css|js|htc|pdf|jpg|jpeg|gif|png|ico)$ [NC]
RewriteRule ^(.*)$ index.php?handler=$1 [QSA,L]
</IfModule>

Который работает, однако я хочу, чтобы он исключал каталоги расширений файлов, и текущее исключение не имеет значения.

Например,

  • /api/объект/1/список действителен
  • /api/объект/тест.php/js/css и т. Д. Недопустимо

Спасибо.

Author: Egor Smolyakov, 2016-11-25

2 answers

Ваш RewriteCond включает . перед всеми включенными расширениями.

Удалите \. из вашего условия, и оно должно работать так.

RewriteCond %{REQUEST_URI} !(.*)(css|js|htc|pdf|jpg|jpeg|gif|png|ico)$ [NC]

Обратите внимание, что вы не сможете использовать включенные имена расширений в своем имени метода/объекта или имени метода/объекта, заканчивающемся этими именами расширений.

 1
Author: josephting, 2016-11-25 01:20:15

Также вы можете опустить (.*), тогда ваше условие будет:

RewriteCond %{REQUEST_URI} !.(css|js|htc|pdf|jpg|jpeg|gif|png|ico)$ [NC]
 0
Author: Sr. Libre, 2016-11-25 02:13:44