http://www.youtube.com/watch?v=Aw28-krO7ZM(Create Your Own MVC-Jream)に基づいてカスタムPHP MVCフレームワークを構築していますが、ローカルWebサーバーとしてIISを使用しています。URL書き換えモジュールをインストールし、次のルールを追加しました。
<rewrite>
<rules>
<rule name="MyRewriteRule" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false"/>
<action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" />
</conditions>
</rule>
</rules>
</rewrite>
MVCは次のように構成されています。
application(folder)
config(folder), controllers(folder), view(folder), model(folder) etc...
public(folder)
css, images, js, etc...
index.php
web.config
URLhttp://localhost:8080/MyApp/
は問題なく機能しますが、http://localhost:8080/MyApp/index/
失敗します...または/home
、/legal
そのことについては任意のコントローラー。カスタムBootstrap.phpファイルでは、次のコードが実行されます。
<?php class Bootstrap{
function __construct(){
//format the url
$url=isset($_GET['url'])? $_GET['url']: null; //when a controller is specified it fails before even hitting this point, im sent to the error 404 page before getting past here
$url=rtrim($url,'/');
$url=explode('/',$url);
if(empty($url[0])){
require 'application/controllers/index.php';
//.....blah blah blah
}
//more irrelevant code...
require 'application/controllers/'.url[0]'.php';
//more irrelevant code...
}} ?>