質問: mod_rewrite / htaccessをセットアップしてurlマスキングとサブディレクトリへの転送を行う方法は? apacheとphp(thinとnignxを使用している;)で遊んでから約3年です。そのため、mod_rewriteディレクティブをセットアップして、ルートからのすべてのhttp要求をアプリケーションのインストールされたフォルダーに転送する方法を忘れました。現在の設定と制限: サイトは共有cpanelホスティングサービス上にあります。このサービスでは、アプリケーションをルートとしてインストールできません(バージョン管理に関する本のバグではありません)。 cmsアプリケーションはjoomla-1.5.60 /の下にインストールされました /jomla-1.5.60/$1にリダイレクトするように/(.*)をセットアップする必要がありますが、/(。*)としてブラウザを確認します redirectmatchが機能しない アカウントの制限のため、アプリケーションのルートとしてdocrootを確立できません apacheでドキュメントを読みましたが、リダイレクトループが発生し続けます。ですから、皆さんが提供できる助けはありがたいです。ありがとう。
回答: これを整理していない場合は、pastebinリンクにある書き換えルールを見てくださいrewriterule ^(.*)$ http://www.diviniti.cc/joomla-1.5.20/$1 [r=301,qsa,l] ここにあなたの欲望を打ち負かしているものがいくつかあります: r=301ディレクティブはブラウザを実際に「立ち去らせ」、書き換えられたurlをロードし、ブラウザのurlを変更します also任意のnon-wwwサブドメインをwwwサブドメインにリダイレクトすることも、urlのjoomla部分をブラウザ。 代わりに、2つのルールを試してください。options +followsymlinks rewriteengine on # 1. redirect (bounce) all non-www to www [as per apache docs][1] - retaining query strings rewritecond %{http_host} !^www\.example\.com [nc] rewritecond %{http_host} !^$ rewriterule ^/(.*) http://www.example.com/$1 [l,r,qsa] # 2. then, use joomla but hide the joomla dir - note the lack of 'r' directive rewriterule ^(.*)$ /joomla-1.5.20/$1 [qsa,l] 「すべてのサブドメインをwwwにする」ことを強制する必要がない場合は、ルール1をスキップして、ルール2のままにします。「ルート」のために、pastebinで行った2回目の書き換えは必要ありません。# also redirect the root folder. rewritecond %{http_host} ^(*.)?diviniti\.cc$ rewriterule ^(/)?$ joomla-1.5.20/index.php [l] 提供されたリライトの^(.*)$は、urlがhttp://www.example.com/である場合にも一致するためです現在、joomla自体はこのchi笑に満足していない可能性があります。documentrootが別のことを言っている間、この擬似ルートにいることを深く嫌がるかもしれません。1: http://httpd.apache.org/docs/2.0/misc/rewriteguide.html#url 「apacheドキュメントごと」