私が取り組んでいるウェブサイトプロジェクトのフォルダ構造を設計しようとしています。ウェブサイトのURLをフォルダとして表示する方法
は私が作ることができます
www.example.com/news/news-item-one/ www.example.com/about-us/:サイトの多くは、これらの日には、以下のリンク構造を持っているように見えます私のサイトは、私が持っているページごとに新しいフォルダを作成せずにindex.phpファイルを置くことなくこのように動作しますか?
私が取り組んでいるウェブサイトプロジェクトのフォルダ構造を設計しようとしています。ウェブサイトのURLをフォルダとして表示する方法
は私が作ることができます
www.example.com/news/news-item-one/ www.example.com/about-us/:サイトの多くは、これらの日には、以下のリンク構造を持っているように見えます私のサイトは、私が持っているページごとに新しいフォルダを作成せずにindex.phpファイルを置くことなくこのように動作しますか?
あなたはCodeIgniterのかCakePHPのようなWebアプリケーションフレームワークを使用することができますwww.example.com/news/news-item-one/
すなわちwww.example.com/news/new-item-one.php読み取りあなたのためのURIルーティングを行うには:
これは、これらのフレームワークのいずれかがドキュメントの例で提供できる.htaccessファイルで行われ、URIルーティングに関する広範なドキュメントを持っています。 CIの例:
はい、それはあなたが実行しているか、サーバーによって決まります。
Apacheの場合、最も一般的な方法の1つは.htaccessファイルを作成し、書き換えルールを使用してウェブサイトが使用するさまざまなルートを宣言することです。
以下は非常に簡単な例ですが、必ずしも最善の方法ではありません。より柔軟にするためにできることがありますが、この質問の範囲外です。それが価値があるのは、自分のフレームワークにルート処理を渡すキャッチオール・ルートが好きです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^news/(.*)$ news.php?item=$1 [NC,L,QSA]
RewriteRule ^about-us/$ about-us.php [NC,L,QSA]
</IfModule>
htaccessを使用します。
は、あなたが(それは良い考えかもしれないが)フレームワークを使用する必要はありません、以下
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)$ $1.php [NC]
では.htaccessと呼ばれるあなたのルートディレクトリにファイルを作成します。あなたは、単に正しくセットアップあなたの.htacessをすることができます
次のmod_rewriteのコードは、(Apacheの設定に入れて)あなたのサイト上であなたが持っている任意のページの拡張子.phpを非表示にすることができます。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule ^(.*)$ $1.php [L]
それはそれの名前の後の.phpを追加すると、実際のファイルであり、それがその代わりになって、その、何かがファイルまたはディレクトリそのものではないことを確認するチェックします。
あなたのサイトに/page.phpがある場合、/ pageに行くことは/page.phpに行くことと同じです。