私はゼロからウェブサイトを構築しています。すべてがMySQLにあり、すべてのコード、メタデータ、jsコード、CSS、本文コンテンツ、すべて. そのために、domain.com/index.php によって提供される変数に基づいて、HTML ページをレンダリングするクラスを作成しました。
少し前に見つけたブログに基づいて、私はこのようにすることに気が進まなかった。完全なチュートリアルが付属していました。残念ながら、もう見つかりません。
とにかく、私の「マスター」テーブルURL's
は次のように構成されています。
| subdomain | category | subcategory | page | extension |
-----------------------------------------------------------------------
| | properties | houses | downtown-la | html |
| properties | houses | downtown | | / |
| ch | properties | houses | downtown-la | html |
| jp | properties | houses | downtown-la | html |
| jp.properties | houses | downtown | | / |
| ch.properties | houses | downtown | | / |
もちろん、このテーブルには pageID などのフィールドが他にもあり、言語、ページのタイトル、説明、キーワードなどに基づいてコンテンツを定義する他のテーブルもあります。
私の目標は次のとおりです。
- index.php にすべての uri/url リクエストをセグメントに処理させます。
- ユーザーがサブドメイン/サブサブドメインを入力したかどうかを認識します。
- これらの値を MySQL に渡して、ページが存在するかどうかを確認します。
- 結果を $status に割り当てます (「ページが見つかりました」の場合は 1 | 「ページが見つかりません」の場合は 0)。
- URL/ページが存在する場合は、ページの ID を $id に渡し、クラスがページを (MySQL 経由で) レンダリングできるようにします。
$subdomain = 'properties'; $sub-subdomain = null; $domain = 'domain,com'; $category = 'houses'; $subcategory = 'downtown'; $ext = '/'; // url in browser: properties.domain.com/houses/downtown/ // some php code here to process url (because there's no folders. Only root/index.php) include('class-page.php'); switch ($status) { Case 1: $html =new page::create($id); echo $html; break; case 0: $html =new page::create(404); //php code to rewrite url as: www.domain.com/error/404.html echo $html; }
ご覧のとおり、index.php のすべてのページを処理し、ユーザーに www.domain.com/category/subcategory/page.html のページにアクセスしていると思わせたいと考えています。
問題は、リダイレクトせずにURLをそのままにしておく方法ではなく、phpでurl/uriを処理する方法がわからないことです。私はphpと非常に小さな.htaccess(またはできればなし)でこの偉業を成し遂げたいと思っています。