最近我将我的网站移到了主机 one.com 。他们已经设置了一个自动机制(我不知道他们用来实现它的目的)来将网站空间上的任何第一级文件夹重写为子域。
即。文件夹http://example.com/folder1/
也可用作http://folder1.example.com/
现在,我有一个网站,它使用了很多javascript来包含来自硬编码,静态源的网页。由于 SOP ,脚本正在运行,具体取决于它们使用的硬编码引用。
因此,为了确保每个人都能获得该网站的工作版本,我还希望将直接文件夹的访问权限重定向到子域名。
我的htaccess for this - 这是在当地和各种htaccess测试人员那里工作 - 似乎没有与one.com合作:
RewriteEngine On
#Rewrite Access to folder1-folder to subdomain.
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteCond %{REQUEST_URI} ^/folder1.*?$ [NC]
RewriteRule .* http://folder1.example.com/ [R=301,L]
由于我不知道one.com用于实现上述行为的确切机制,因此可能与我的规则发生冲突。
支持说,所有使用过的命令都得到了完全支持,因此无法分辨出出了什么问题......
有没有人遇到过类似的东西并且有提示?
刚刚找到了解决方案:
RewriteEngine On #does not work
VS
RewriteEngine on #does work
答案 0 :(得分:0)
您需要检查实际请求是否为/folder/
而不是URI(可以在内部重写)。尝试:
#Rewrite Access to folder1-folder to subdomain.
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /+folder1/ [NC]
RewriteRule ^folder1/(.*)$ http://folder1.example.com/$1 [R=301,L]