2016-11-01 13 views
2

ここでは私のサーバーに私のプロジェクトのフォルダ構造です:のhtaccess - レベルのフォルダまでのアクセスをサブフォルダにリダイレクトするが、維持

-- mainfolder 
    -- folder1 
     -- file1.js 
     -- file2.js 
    -- folder2 
     -- file3 
     -- file4 
     -- subfolder1 
     -- subfolder2 
     -- index.html 

私はセットアップ.htaccessファイルに必要www.example.comはいつも私が持っているwww.example.com/folder2へのリダイレクトを持つために、ファイルindex.htmlindex.htmlfolder2には、folder1内のファイルを参照していること:

index.htmlを

... 
<script src="../folder1/file1.js" > </script> 
<script src="../folder1/file2.js" > </script> 
... 

私はいつも/mainfolder/にリダイレクトするには、この.htaccess設定を試してみました:

RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.example.com$ 
RewriteCond %{REQUEST_URI} !mainfolder/ 
RewriteRule (.*) /mainfolder/$1 [L] 

しかし、私はこのようにウェイは私のウェブサイトにアクセスするにはwww.example.com/mainfolder/folder2と入力する必要があります。

folder2を指す方法があります。最も重要なことは、folder2のファイルがfolder1のファイルにアクセスできるようにしますか?

また、私はこの試みている:

RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR] 
RewriteCond %{HTTP_HOST} ^www.example.com$ 
RewriteCond %{REQUEST_URI} !mainfolder/folder2/ 
RewriteRule (.*) /mainfolder/folder2/$1 [L] 

をしかし、ブラウザがドキュメントルートが/mainfolder/folder2/だと思いますので、それを知らないので、それがfolder1内のファイルにアクセスできないため、問題は、私はindex.htmlからエラーが出るということです/mainfolder/folder1。要約すると

、私が行う必要があります。

  • アクセス/mainfolder/folder2/index.htmlwww.example.comを入力する際に​​、
  • folder2のファイルはfolder1ファイルにアクセスできます。

p.s.私はDocumentRoot私のWebサーバーを変更することはできません、私は.htaccessファイルを編集することができます。

ありがとうございました

+0

'../ folder1/file1.js'ではなく'/folder1/file1.js'を使用できますか? – Ergec

+0

私はそれを変更することができますが、私が変更できない 'folder1'へのパスを使用する' folder2'には他のファイルがあります。 – Frank

答えて

2

私がテストしたすべてのケースで、この1つは私のために働いていました。それが役に立てば幸い。何かが正しければ私に知らせてください。

RewriteEngine On 
RewriteRule ^folder1/(.*)$ /mainfolder/folder1/$1 [L] 
RewriteRule ^$ /mainfolder/folder2/index.html [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /mainfolder/folder2/$1 [L] 
関連する問題