Это новое понимание вопроса, который я написал ранее:
У меня есть фрагмент mod_rewrite, который выясняет, существуют ли файлы javascript, css, php на поддомене, где они вызываются (например, subdomain.example.com
).Если они не существуют, то apache «перенаправляет» на common.example.com
, где находятся обычные файлы js, css и php.См. Ниже:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.(js|css|php)$ http://common.example.com/$1.%2 [L]
Это работает, если:
- Вы явно подключаете запрошенное имя файла в адресную строку.
- Это также работает, если на js или css есть ссылка / ссылка в разметке html.
Не работает, если
- URL-адрес используется внутри файла php или js (например, для вызова ajax).Вместо этого он ссылается на поддомен, где находится html-страница (т. Е. Mod_rewrite не перехватывает ее):
subdomain.example.com
Спасибо SO за вашу помощь
EDIT
В соответствии с запросом Пекки, вот пример:
- Например, subdomain.example.com / test.html
- test.html ссылки
<script src="/code/js/test.class.js" type="text/javascript" ></script>
- В test.class.js существует
$.ajax({ url: "/code/php/test.php", dataType
: "json", data: {cmd : 'someCommand'}, success: callback()});
..
- Таким образом, в # 2 он находит
common.example.com/code/js/test.class.js
(Правильно!) - Но в # 3 ajax вызывает
subdomain.example.com/code/php/test.php
(Неверно! Из-за subdomain
)