2012-01-28 9 views
3

セイのクリーン探してリンクのための.htaccessファイルを使用してイムが、私は長いリストを持っていることはRewriteRulesの方が良いキャッチにすべてのRewriteRuleを使用することです。この.htaccess RewriteRuleの長いリストを使用するか、PHPで単一のcatchallとdirectを使用しますか?

domain.com/user/adam --> domain.com/user.php?need=user&user=adam 
domain.com/test.js --> domain.com/index.php?need=code&file=test.js 
domain.com/test.js/edit --> domain.com/index.php?need=code&file=test.js&action=edit 

のようなものを行うために(20と言う)とに分割しますスラッシュ/解析とPHPの直接?または、RewriteRuleの長いリストが良いですか?

私はより速く、より堅牢であると思います。私は、すべてのキャッチで維持管理が改善されることを知っています。

また、これにはPHPクラスの例/記事をおすすめできますか?

+1

どのフレームワークを使用していますか? MVCを使う? – emaillenin

+0

これは私自身の質問に非常に近いです。)ここで : http://stackoverflow.com/questions/7702667/php-handling-vs-apache-rewriterules-and-regexp-which-one -is-quicker –

+0

MVCメソッドを使用して実装されていますが、フレームワークを使用していません。 –

答えて

0

あなたはフレームワークを使用していないにもかかわらず、ZendRouterを見たいと思うかもしれません、彼らのアイデアに従うことができます。

http://framework.zend.com/manual/en/zend.controller.router.html

基本的には.htaccessルート正規表現に一致するものを除き、index.phpファイルへのすべての要求:

RewriteRule !\.(js|ico|gif|jpg|png|css|html)$ index.php 

または非ファイル/ディレクトリ(私はそこにあると思いますけれども

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

このタイプのrを利用した後は、ファイル/ディレクトリが存在するかどうかを確認するためのコストが少し高くなります。外出 - コントローラ/アクションにマップするURLの標準正規表現を定義することができます

1

これがあなたの質問に答えるならば、大量のリライトルールのリストを使用しても問題ありません。私はあなたの問題がなければ大規模なリストに問題はありません。

関連する問題