0

(これが繰り返しの質問である場合は申し訳ありませんが、私はそれを検索する方法を考えるのに苦労し、404を機能させる方法について何千もの結果を思いついただけです。)

私はおおよそ次の形式に従うPHPWebサイトを構築しようとしています。http://www.example.com/user/MrPoopPants

そして、私はそのための最良の解決策を考えていました。また、URL短縮サービスがどのようにリダイレクトするかを理解しようとして、あるWebサイトは、404を介してすべてのリクエストを送信し、404エラーページでデータを評価することを提案しました。$_SERVER['REQUEST_URI']

これで、preg_splitMrPoopPantsという名前のユーザーがいるかどうかをデータベースに尋ねてから、インクルードとデータベースに基づいてPHPを使用してサイトを構築することができます。

これに関して私が気に入らない2つの問題は次のとおりです。Webサイトのすべてのページに404を使用していますが、これは本当に悪いことのようです。私はまた、ウェブサイト全体で単一のphpファイルに依存していますが、これは悪い形式のようです。

これを実行するための最良の方法は何でしょうか?編集:つまり、これは悪い習慣だと思いますが、解決策は何ですか?404にリダイレクトせずにURL情報を検出するにはどうすればよいですか?URLを読み取って/user/manboyページを作成できるように、ページを設定するにはどうすればよいですか?/user/user.php

4

4 に答える 4

1

あなたがやろうとしていることは、URLの書き換えで達成できます。PHPフレームワークを実際に調べる必要がありますが、自分で書き直すことができます。

http://mydomain.com/user/1次のように書き換えることで、サーバー上で処理できるようなURLを作成できますhttp://mydomain.com?q=user/1

次に、以下を使用してコードでURLにアクセスできます。 $url = $_GET['q'];

http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/

于 2012-07-13T01:48:02.250 に答える
1

あなたは本質的にURLの書き換えについて質問しています。のすべての重要なビットとバイトを説明する初心者向けの優れたチュートリアルは、ここmod_rewriteにあります。

書き直されたリクエストを処理するPHPの部分は、誰もあなたに単純に「説明」できないPHP101を恐れています。人々が実際にあなたを助けることができるようにするために、あなたは非常に特定の問題について特定の質問をする必要があります。

于 2012-07-13T01:50:21.640 に答える
0

404エラーは、実際にはWebサイトを機能させるために使用するツールではありません。代わりに、クライアントが要求したものが見つからない場合にクライアントに送信する応答としてのみ考えてください。

これを処理するためのより良い方法は、Webフレームワークを設定してhttp://www.example.com/user/_____、最後の後に続くフォームの任意のURLに応答する単一のスクリプトを作成すること/です。次に、データベースなどでユーザー名を検索するコードを記述し、目的の結果ページを生成できます。

于 2012-07-13T01:38:07.770 に答える
0

書き換えルールに関するここでの他の答えは絶対に正しいです。しかし、私は過去に1つのホスト名で多数のさまざまなアプリケーションをホストしているサーバーで、あなたが提案していることを正確に実行しなければならないという状況がありました。

基本的に、共有IISサーバーでの再書き込み構成がロックダウンされているため、404ページをPHPスクリプトに設定しました。このスクリプトは、データベースで試行されたURLを検索して、他の場所にリダイレクトされるように設定されているかどうかを確認します。

ここで重要なのは、404がクライアントに送信されなかったことです。Locationクライアントはヘッダー付きの301または302を取得しました。クライアントは、404ページが返されなかったため、404ページに到達したことを知りませんでした。(もちろん、スクリプトがデータベースでリダイレクトエントリを見つけられなかった場合、適切な404ページとステータスコードが返されます。)

要するに、型にはまらないものの、通常のオプションを使い果たし、クライアントへの対応に注意を払っていれば、このアプローチに問題はありません。

于 2012-11-23T06:29:47.750 に答える