これは部分的に「これは機能しない」という質問ですが、URL 美化に関するベスト プラクティスの質問でもあります。
簡単なサイト マップは次のとおりです。
- index.php
- / リクエスト
- .htaccess
- 学生.php
- 企業.php
- 地区.php
- サイトの残りの部分
上で述べたように、.htaccess を requests ディレクトリ内に配置しました。ここに少し背景と私が達成しようとしていることがあります:
学生と企業のページは、このプログラムに参加する学区ごとにカスタマイズされます。特定のページに移動するリンクが配布されます。誰かが学区識別子なしで企業または学生のページにアクセスしようとすると、districts.php にリダイレクトされ、そこで所属する学区を選択できます。
ただし、これはすべて完全に機能します-クエリ文字列をクリーンアップしようとしており、mysite.com/reqeusts/students.php?district=7 を mysite.com/reqeusts/students/7 のようにしたいと考えています
私が使用している .htacces ファイルは次のとおりです。
RewriteEngine on
RewriteCond %{QUERY_STRING} .
RewriteRule ^students/([0-9a-z\-]+)/?$ students.php?url=$1 [L]
mysite.com/requests/students.phpとmysite.com/requests/students.php?district=7には問題なくアクセスできますが、mysite.com/requests/students/7 では 404 が返されます。
ここに私の2つの質問があります:
- 私の現在のアプローチに明らかに間違っていることはありますか - 私が読んだすべて (ここと外部) は、私が今持っているものを作成するように導き、ほとんどの人のために働いているようです.
- これはスケーラブルですか?また、corporate.php と districts.php のクエリ文字列も処理したいと考えています。これについて私が見たほとんどの例では、1 つのスクリプトの要求しか処理していません。
編集
マイクはコメントで.htaccess
、ファイルが実際には students.php であったときに、私が Student.php を指していたことを指摘しました。その切り替えを行った後、student.php にまったくアクセスできなくなりました。クエリ文字列の有無にかかわらず、美化されているかどうかにかかわらずです。 .