2012-02-13 6 views
2

私はウェブサイトを持っています、例えばhttp://mysite.comです。 index.phpをサブディレクトリpublic_html/mysubdir/index.phpに入れたいと思います。ユーザーがhttp://mysite.comに行くとpublic_html/mysubdir/index.phpが実行されるようにしたいと思います。そして私は、URLがhttp://mysite.comを読み続けることを望みます。これは可能ですか?私はindex.phpをサブディレクトリに置くことができますが、urlにはサブディレクトリを表示できませんか?

+1

を表示はい、URL書き換えのためにここで検索見つけることができません。 – Brad

+0

あなたはどのようなhttpサーバを使用していますか? – Ivan

+0

@Ivan:Apache 2.2.22を使用しています。それはあなたが意味することですか? – moondog

答えて

2

書き換えルール:

http://httpd.apache.org/docs/current/mod/mod_rewrite.html

mod_rewriteが有効になっていることを確認してから、このようなもので、あなたのルートディレクトリに.htaccessファイルを置きます欲しいです。ちょうどあなたのメインのインデックスページの場合、これは動作します...

単にあなたの.htaccessファイルにこの1行を追加:

DirectoryIndex mysubdir/index.php 

それは単にURLでhttp://mysite.comを示しながらmysubdir/index.phpにあるページが表示されます。

私はこの方法を自分で使います。 私のページのはすべて同じサブディレクトリにありますが、ホームページは私自身のドメイン名で表示されます(http://www.mysite.com)。他のすべてのページには完全なURLが表示されます。


あなたはまた、より深いサブディレクトリ内のindexページを持っており、それらがサブディレクトリ内のデフォルトで思い付くします。

例:http://mysite.com/mysubdir/anothersub/index.php

このURLを考え出す:

あなたは、このページが必要な場合http://mysite.com/mysubdir/anothersub/

は、このような別のindex.php ...

DirectoryIndex mysubdir/index.php index.php 
の行を変更します

これは、同じ順序でそれらの名前のファイルを探すようにサーバーに指示します。最初のものを見つけることができない場合は、2番目のものを試みる、などとなります。

ルートの内側に/がある場合は、mysubdir/index.phpと表示されます。

あなたは/mysubdir/anothersub/のような別のサブディレクトリの中にいるとき、それはmysubdir/index.phpという名前のものがそう、それは次の項目に移り、index.php

+0

この作品は、ありがとうございます。しかし、今私は別の問題があります。 index.phpは、相対リンクを使用して、さまざまなcssファイルとjsファイルにリンクします。例:

4

ウェブサーバーがApacheの場合は、URL rewriting with mod_rewriteを使用できます。

別のオプションは、ルートディレクトリにindex.phpを作成し、サブディレクトリにindex.phpを含めることです。

1

.htaccessファイルを使用して、Rewriteのルールを定義することができます。 何に応じて、このためにやり過ぎかもしれ

<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ your_subdir/index.php/$1 [L] 
</IfModule> 
+0

非常に役に立ちます。ありがとうございました。 – moondog

+0

素晴らしい!それが役に立つとうれしいです。 –

関連する問題