这是我服务器中的项目文件夹结构:
-- mainfolder
-- folder1
-- file1.js
-- file2.js
-- folder2
-- file3
-- file4
-- subfolder1
-- subfolder2
-- index.html
我需要设置.htaccess
文件,以便www.example.com
始终重定向到www.example.com/folder2
我拥有index.html
文件的位置。现在 index.html
中的folder2
引用了 folder1
中的文件:
的index.html
...
<script src="../folder1/file1.js" > </script>
<script src="../folder1/file2.js" > </script>
...
我已尝试将此.htaccess
配置始终重定向到/mainfolder/
:
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]
但问题是我从index.html
收到错误,因为它无法访问folder1
中的文件,因为浏览器认为文档根目录是/mainfolder/folder2/
,所以它不知道/mainfolder/folder1
1}}。
总之,我需要:
/mainfolder/folder2/index.html
; 后,www.example.com
folder2
中的文件访问folder1
个文件。 P.S。我无法更改我的网络服务器的DocumentRoot
,我只能编辑.htaccess
文件。
由于
答案 0 :(得分:2)
在我测试过的所有情况下,这个都适合我。希望能帮助到你。如果事情不对,请告诉我。
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]