htaccess для собственного php mvc framework - PullRequest
0 голосов
/ 29 февраля 2012

Доброе утро, Я строю свой собственный PHP-фреймворк. Я хотел бы, чтобы все запросы передавались в файл index.php, кроме запроса в файл js css jpeg, jpg, png. Поэтому я хочу, чтобы модуль независимо от других имел собственную папку ресурсов с изображениями css и файлом js.

Структура выглядит примерно так:

application
   module1
     models
     controllers
     templates
         assets
             css
             images
               test.jpg
               hello.png
             js

         view1.html.php
         view2.html.php

   module2
     models
     controllers
     templates
         assets
             css
             images
               test.jpg
               hello.png
             js

         view1.html.php
         view2.html.php
  core
    here is core file framework

  index.php

Как я могу это сделать?

Обновление

Мои модули находятся в папке приложения. папка активов должна быть общедоступной. Я хочу простой маленький URL-адрес, такой как www.example.com / module1 / images / test.jpg

вместо длинных

www.example.com / приложение / module1 / шаблоны / активы / изображения / test.jpg

Ответы [ 4 ]

0 голосов
/ 29 февраля 2012

Я недавно начал работать над своим собственным фреймворком и нашел сайт ниже очень полезным. Он охватывает .htaccess и все другие аспекты настройки базовой инфраструктуры MVC.

http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/

Я переписал все компоненты базы данных для PDO, настроил маршрутизацию по умолчанию и изменил некоторые функции, но нашел ее очень полезной и, безусловно, заслуживающей прочтения.

0 голосов
/ 29 февраля 2012

На самом деле, .htaccess по умолчанию zf хорошо работает для этого

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
0 голосов
/ 29 февраля 2012

Это example.htaccess из Kohana :

# Turn on URL rewriting
RewriteEngine On

# Installation directory
RewriteBase /

# Protect hidden files from being viewed
<Files .*>
    Order Deny,Allow
    Deny From All
</Files>

# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]

Должно использоваться, если вы просто удалите строку о защите файлов приложения и системы.Вместо этого просто убедитесь, что эти файлы ничего не делают сами по себе.В Kohana это решается путем определения константы в index.php, который затем проверяется в начале всех файлов, которые не должны быть доступны извне.

<?php defined('SYSPATH') or die('No direct script access.');
0 голосов
/ 29 февраля 2012

Вы можете переписать все в index.php, за исключением содержимого какой-либо папки, например ::

RewriteCond %{REQUEST_URI} !^/(css|images|js)/
RewriteRule .* index.php [L]

Все файлы в папках / css, / images, / js не будут перезаписаны.

...