.htaccess将子域重写到上面的目录

时间:2015-11-23 06:42:42

标签: apache .htaccess mod-rewrite

我遇到了一个mod_rewrite问题,这次我无法弄清楚自己:

页面中的某些Javasript需要加载更多的JS文件,因为缺少CORS-Header而拒绝这些文件(Access-Control-Allow-Origin)

我的服务器结构

 Root | admin   | index.php 
      | content | (...)
      | system  | wysiwyg | (Files)

根目录中的.htaccess

RewriteEngine on

RewriteCond %{HTTP_HOST} ^i.cms.local
RewriteRule ^(.*)$ /content/media/getImage.php?img=$1 [QSA,NC,L]

RewriteCond %{HTTP_HOST} ^(admin|a).cms.local
RewriteRule ^(.*)$ /admin/$1 [L]

RewriteCond %{HTTP_HOST} ^cms.local
RewriteRule ^(.*)$ http://www.cms.local/$1

RewriteCond %{REQUEST_URI} \ /+index\.php\?q=([^&\ ]+)
RewriteRule ^ /%1.html [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.html$ /index.php?q=$1 [L]
RewriteRule ^(.+)/$ index.php?q=$1 [L]

文件im on是通过子域a.cms.local访问的管理员目录中的index.php。 s2.cms.local/wysisyg/...通常可以访问其他文件。但是为了避免CORS Header错误,我需要从同一个URL接收它们,对吧?我虽然使用以下链接:

  

http://a.cms.local/wysiwyg/anyfile.js

然后.htaccess将所有wysiwyg请求重定向到系统文件夹中的wysiwyg文件夹。不知怎的,我不断收到404错误 - 希望有人有个主意吗?

1 个答案:

答案 0 :(得分:0)

在这篇类似的帖子中找到答案:https://stackoverflow.com/a/27990162/1190388 在htaccess中添加以下内容,为所有使用^ orgin cms.local的URL启用CORS:

heroku run python manage.py syncdb