Спасибо всем за ваше терпение и помощь. Я полностью перезагружаю вопрос, потому что он становится довольно длинным после всех моих пересмотров.
У меня есть PHP MVC Framework с 4 точками входа:
от корня:
index.php
index-ajax.php
admin / index.php
админ / индекс-ajax.php
Мне нужен файл .htcaccess, который будет принимать любой запрос и переписывать его в соответствующий файл на основе URL. Длинный URL был бы index.php? Rt = cms / view / 15, и я хотел, чтобы это был index / cms / view / 15. Эта часть в значительной степени сделана за исключением одного гоча.
Вот мой файл .htaccess сейчас:
# htaccess file for framework - GOOD
Options +FollowSymLinks
# Turn on the mod_rewrite engine - GOOD
RewriteEngine On
# Hide indexes - GOOD
Options -Indexes
# If a file is not one of these, continue processing. - GOOD
RewriteRule \.(css|js|jpg|jpeg|png|gif|ico)$ - [L]
# RewriteRules for folder index files
#RewriteRule ^(index)?(.php)?$ index.php [L] - GOOD
#RewriteRule ^admin(/?)(index)?(.php)?$ admin/index.php [L] - GOOD
# RewriteRules for admin folder arguements - going from more specific to less
RewriteRule ^admin/ajax/[A-Za-z0-9-_/]*$ admin/index-ajax.php?rt=$1 [L]
RewriteRule ^admin/[A-Za-z0-9-_/]*$ admin/index.php?rt=$1 [L]
# RewriteRule for root ajax file
RewriteRule ^ajax/[A-Za-z0-9-_/]*$ index-ajax.php?rt=$1 [L]
# RewriteRule for root file - by here, it is not ajax or admin related, so only
# possible option left if the root index file
RewriteRule ^[A-Za-z0-9-_/]*$ index.php?rt=$1 [L]
Я сделал простой сайт с двумя папками - 'root' и 'root / admin', и внутри каждой из них папки css, images и javascript с некоторым фиктивным контентом. Внутри файлов 'root' и 'root / admin' есть файлы index.php и index-ajax.php, которые просто выводят любой аргумент url и используют файлы css, js и image из каждой папки.
Проблема, с которой я столкнулся сейчас, заключается в том, что если я делаю URL-адрес, такой как index / blah или / admin / index / blah, то страница отображается правильно, а аргумент - правильным. Однако, когда я делаю URL-адрес, такой как index / blah / view или admin / index / blah / view, тогда аргумент верен (? Rt = blah / view), но страница отображается неправильно, потому что файл css / js / images идет в индекс / Blah / [CSS] вместо индекса / [CSS].
Есть идеи, как с этим справиться? Я позволил файлам css / js / image проходить, как есть, через .htaccess, чтобы там было меньше работы.