2015-11-23 3 views
0

У меня проблема mod_rewrite, который я на этот раз просто не могу понять себя:.htaccess переписать субдомен выше каталог

Некоторые Javasript на странице требуется, чтобы загрузить дополнительные JS файлы, отвергается, так как в CORS-заголовка отсутствует (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 является index.php в адресе admin directcory через субдомен a.cms.local. Дополнительными файлами было бы нормально получить доступ к s2.cms.local/wysisyg/.... Но чтобы избежать ошибки заголовка CORS, мне нужно получить их с того же URL-адреса, верно? Si я, хотя я использую следующую ссылку:

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

И тогда .htaccess перенаправляет все Wysiwyg запрос в папку Wysiwyg в системной папке. Как-то я продолжаю получать ошибку 404 - Надежда у кого-то есть идея?

+0

Вы можете вместо этого установить заголовок CORS. – hjpotter92

+0

@ hjpotter92 Нет, потому что это позволит XSS Attacs, и это будет означать большую дыру в безопасности, которую я стараюсь избегать (насколько я знаю) – guest

+1

http://stackoverflow.com/a/27990162/1190388 – hjpotter92

ответ

0

нашел ответ в этой аналогичной должности: https://stackoverflow.com/a/27990162/1190388 Добавлено следующее в HTAccess которые позволяют CORS для всех страниц с orgin cms.local в ^:

SetEnvIf Origin ^(https?://.+\.cms\.local(?::\d{1,5})?)$ CORS_ALLOW_ORIGIN=$1 
Header append Access-Control-Allow-Origin %{CORS_ALLOW_ORIGIN}e env=CORS_ALLOW_ORIGIN 
Header merge Vary "Origin" 
Смежные вопросы