mod_rewrite к REST дружественному URI с относительными путями и без зацикливания

225
Ryan

Моя структура папок очень похожа на следующую:

/a/b/api/ .htaccess index.php support.php debug/ debug.php 

Я пытаюсь использовать mod_rewrite, чтобы сделать следующее: a / b / api / d -> a / b / api / index.php / da / b / api / d / e -> a / b / c / index. php / d / ea / b / api / support.php -> a / b / c / index.php / support.php a / b / api / debug / debug.php -> a / b / c / index.php /debug/debug.php

Чтобы предотвратить зацикливание, большинство людей предлагают добавить

RewriteCond % !-f 

который не блокирует доступ к support.php. К сожалению, если я удаляю его, я получаю максимальную ошибку глубины рекурсии на index.php. Другое решение, которое предлагают люди, - использовать RewriteBase для установки базы в / a / b / c. К сожалению, этот скрипт должен поддерживать размещение в любом произвольном каталоге, поэтому он может оказаться в / z / c или b / a / c.

Есть ли способ перенаправить все, кроме ссылок на себя в index.php (без знания папки, в которой он находится)

Полный код:

RewriteEngine on  RewriteCond % !-f RewriteRule ^(.*)$ index.php/$0 
0

0 ответов на вопрос

Похожие вопросы