1

私はここやインターネット全体で多くの例を見てきましたが、私が理解している答え、または私の問題を正確に解決する答えを見つけることができないようです。フォルダーの名前を別の名前に変更する.htaccessファイルにmod_rewriteディレクティブを実装しようとしていますが、URLバーにその名前は表示されません。

例:(ユーザーがリンクをクリックすると、次の場所に移動します):

theSite.com/folder1/folder2/folder3/      

見てもらいたい(上記と同じ)

theSite.com/folder1/folder2/folder3/ 

しかし、私はブラウザがこのディレクトリで静かに機能することを望んでいます

theSite.com/folder1/some_other_folder/folder3/ 

私はPHP開発者であり、最初のWebアプリケーションを作成しています。Apache、PHP、mysqlを構成して、プロのように使用できます。申し訳ありませんが、mod_rewriteの構文がわかりません。次のコンセプトに進む前に質問をする必要があるので、多くのチュートリアルを見ても理解できないようです。お待ちいただいてありがとうございます。

4

2 に答える 2

1

あなたのケースはかなりありふれたものです。静的文字列を照合する必要があります。さらに、(.*)それに続くすべてを照合してに格納し$1、を代入する必要がありsome_other_folderます。

[L]フラグ(およびフラグがない場合)[R]は、ブラウザーをリダイレクトせずに内部で書き換え、それ以上のルールに一致せずにここで停止するようにApacheに指示します。

RewriteEngine On
RewriteRule ^folder1/folder2/folder3(.*)$ folder1/some_other_folder/folder3$1 [L]

それ自体が「動的」部分の一部である場合folder3、つまり、その後folder2は黙ってに書き直されsome_other_folder、ルールから除外されfolder3、後続のすべてをにキャプチャする必要があります。folder2$1

RewriteEngine On
RewriteRule ^folder1/folder2/(.*)$ folder1/some_other_folder/$1 [L]
于 2013-01-30T17:50:17.067 に答える
1

私は以下を使用します

RewriteRule /folder1/folder2/folder3/ /folder1/some_other_folder/folder3/  [L]
于 2013-01-30T18:00:12.793 に答える