ご理解とご協力をいただきありがとうございます。私はすべての私の改訂からかなり長くなっているので、私は完全に質問を再起しています。
のindex.php
インデックスajax.php
管理/ index.phpを
管理/インデックスajax.phpURLリライトヘルプ
: Iは4つのエントリポイントとPHP MVCフレームワークを持っています
リクエストを受け取り、URLに基づいて対応するファイルに書き直す.htcaccessファイルが必要でした。長いURLはindex.php?rt = cms/view/15となり、index/cms/view/15としたいと思っていました。その部分は1つのつかまりを除いてかなり多く行われます。
が今ここに私の.htaccessファイルである:私は2つのフォルダに簡単なサイトを作っている
# htaccess file for framework - GOOD
Options +FollowSymLinks
# Turn on the mod_rewrite engine - GOOD
RewriteEngine On
# Hide indexes - GOOD
Options -Indexes
# If a file is not one of these, continue processing. - GOOD
RewriteRule \.(css|js|jpg|jpeg|png|gif|ico)$ - [L]
# RewriteRules for folder index files
#RewriteRule ^(index)?(.php)?$ index.php [L] - GOOD
#RewriteRule ^admin(/?)(index)?(.php)?$ admin/index.php [L] - GOOD
# RewriteRules for admin folder arguements - going from more specific to less
RewriteRule ^admin/ajax/[A-Za-z0-9-_/]*$ admin/index-ajax.php?rt=$1 [L]
RewriteRule ^admin/[A-Za-z0-9-_/]*$ admin/index.php?rt=$1 [L]
# RewriteRule for root ajax file
RewriteRule ^ajax/[A-Za-z0-9-_/]*$ index-ajax.php?rt=$1 [L]
# RewriteRule for root file - by here, it is not ajax or admin related, so only
# possible option left if the root index file
RewriteRule ^[A-Za-z0-9-_/]*$ index.php?rt=$1 [L]
- 「ルート」と「ルート/管理者」、およびそれらのそれぞれの内部CSS、画像、いくつかのダミーのコンテンツを含むjavascriptフォルダ。 'root'と 'root/admin'の中にはindex.phpとindex-ajax.phpファイルがあり、url引数が何であれ単純に出力し、各フォルダのcss、js、およびimageファイルを使用します。
私が今問題にしているのは、index/blahまたは/ admin/index/blahのようなURLを作成すると、ページが正しく表示され、引数が正しいことです。しかし、私がindex/blah/viewやadmin/index/blah/viewのようなurlを実行すると、引数は正しい(?rt = blah/view)が、CSSの/ js// blah/[css]の代わりにindex/[css]を入力します。
これをどう対処するかについてのアイデアはありますか?私はcss/js/imageファイルが.htaccessを経由して行くようにしましたので、そこでの作業は少なくなります。
はい。 html内のimage/css/js/etcファイルのリンクは、その文書に関連しています。 MVCのすべての結果(グローバルスタイルシート、htmlスケルトンイメージなど)にはいくつかの外部リソースがあります。 私の.htaccessでは、css、js、またはimage拡張子を持つファイル要求はそのまま受け取りました。これらのリソースは処理が必要ないと考えられているため、そのまま使用されています。しかし、今度は、URLが入れ子になっているので、 "blah"が実際にコントローラであるときに、それらが "blah"と呼ばれるフォルダにあると思うので、URLは存在しないフォルダに移動します。 –
あなたのimage/css/js/etcファイルが.htaccessをバイパスしていることをお勧めします。上記の私の解決策は、 "URLにプレフィックスを付け加えることで、問題が"曖昧な "フォルダにあると思っています。上記の例では、 '/ hosted/skel'フォルダが実際に存在しています。しかし、 'public/results /'はそうではありません。 'school-1'ページがCSSファイルを "main.css"として参照した場合、 '/ hosted/skel/public/results/main.css'を取得しようとします。だから、CSSファイルを "../../main.css"と呼ぶようにHTMLを変更します。これは '/ hosted/skel/main.css'に置かれます。これはファイルの実際の場所です。 – MidnightLightning