楽しみのために、php で reddit のクローンを作成したいと考えています。私は主にJavaの経験がありますが、それが問題になる場合は、PHPの使い方を知っています。また、Rails 3 の経験は非常に限られていますが、Rails が URL を処理する方法も、私が処理したい方法に近いと思います。
これまでのところ、.htaccess には次のものがあります。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php/$1 [L]
これにより、すべてのページが index.php にルーティングされ、そこで URI が解析され、スイッチでリクエストが処理されます。これは長期的にはスケーラブルではないことはわかっていますが、すぐに始めたいと思っています。
私の次のステップは、localhost/r/all のような URL の末尾に / を自動的に追加して、localhost/r/all/ になるようにすることです。
RewriteRule ^/?(.+)$ /$1/ [R]
これにより、500 エラーが発生します。/$1/ が ^/?(.+) になるため、リダイレクトの無限ループに陥ってしまうためだと思います。だから私は次のようなものが必要です:
RewriteRule ^/?(.+)Does not end in a forwardlash$ /$1/ [R]
これどうやってするの?私はそれを参照してください!文字は、一致してはならない条件を示すために使用できますが、これを機能させるのに問題があります。
どんなアドバイスでも大歓迎です。
編集:
getenv("DOCUMENT_ROOT") //gives /var/www
私は /var/www/index.php を /www に住んでいます。これらの変更を行っている .htaccess ファイルは /var にあります。
/var に .htaccess があります。これは、httpd.cong に次のようなものがあるためです。
<Directory /var>
AllowOverride All
</Directory>
私は最初にそれを持ってみました
<Directory /var/www>
.htaccess を www に入れますが、読み込まれません。ゴミを入れてエラーがないので、読まれていないことがわかります。しかし、/var にゴミがあり、Drectory ディレクティブが /var を指定すると、エラーが発生します。