そのようなことが可能かどうかはわかりませんが、試してみましょう。過去(3年以上前)に、あるMVCチュートリアルで、このようなソリューションについて知るようになりました(正確にはわかりません)。
ディレクトリ構造
- WebRoot /
- 含む/
- config /
- 公衆/
- 画像/
- js /
- css /
- index.php
- init.php
私がやりたいのは
ユーザーがアクセスするときhttp://www.mysite.com/a/b/c/
に、すべてのリクエストをページにリダイレクトし/public/index.php
ます。つまり、ウェブサイトへのすべてのリクエストは、にあるディレクトリ/public/index.php
を除いて、ページをimages/
通過します。js/
css/
public/
また、ページにhttp://www.mysite.com/includes/
リダイレクトし、としてindex.php
取得includes/
し$query
ます。
Index.phpページ
<?php
// get init file from webroot directory, which will load all required php files.
define ('ROOT', dirname(dirname(__FILE__)));
require_once (ROOT . 'init.php');
// get query from url (here, $query = "a/b/c/")
if(isset($_GET['q'])) {
$query = $_GET['q'];
}
// insert images, css etc. resource
echo "<img src='http://www.mysite.com/images/foo.jpg' />";
echo "<script src='http://www.mysite.com/js/bar.js'></script>";
?>
これは、webrootへのワンステップアップディレクトリアクセスを提供しないweb-hostingを使用しているユーザーにとって便利です。
編集
OK、このコンセプトを思いついたサイトを見つけました。ルートディレクトリとパブリックディレクトリで使用される2つの.htaccessファイルを参照してください。MVCチュートリアルへのリンク