Ceci est une nouvelle compréhension d'une question que je tition:Essayer d'obtenir à un php/javascript bibliothèque commune avec mod_rewrite
J'ai un extrait de mod_rewrite qui découvre si javascript, css, fichiers php existe sur le sous-domaine où ils sont appelés (par exemple, subdomain.example.com
). S'ils n'existent pas, alors Apache redirige vers common.example.com
où les fichiers js, css et php sont communs. Voir ci-dessous:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\.(js|css|php)$ http://common.example.com/$1.%2 [L]
Cela fonctionne si:
- Vous branchez explicitement le nom de fichier demandé dans la barre d'adresse.
- Cela fonctionne également si js ou css est référencé/lié dans le balisage html.
Il ne fonctionne pas si
- L'URL est utilisé dans un fichier php ou js (par exemple, pour un appel ajax). Au contraire, il fait référence au sous-domaine où la page html se trouve (c.-à-mod_rewrite ne se coince pas):
subdomain.example.com
Merci SO pour votre aide
EDIT
de requestion de Per Pekka, ici est un exemple:
- Prenez par exemple subdomain.example.com/test.html
- test.html références
<script src="/code/js/test.class.js" type="text/javascript" ></script>
- En test.class.js il y a
$.ajax({ url: "/code/php/test.php", dataType : "json", data: {cmd : 'someCommand'}, success: callback()});
..
- DonC# 2, il trouve
common.example.com/code/js/test.class.js
(Correct!) Mais en # 3, l'ajax appellesubdomain.example.com/code/php/test.php
(Incorrect! en raison desubdomain
)
Les URL sont des URL, peu importe où elles sont référencées. Ils devraient toujours travailler de la même manière. Lorsque le sous-domaine est référencé, l'URL doit être automatiquement réécrite. Pouvez-vous faire un exemple? –
Bonjour @Pekka! J'ai écrit un exemple. J'espère que ça va aider? – Kyle
@Emile ouais, je l'ai déjà vu. Vous dites donc que les règles mod_rewrite sont appliquées lorsque vous faites référence à subdomain.example.com/code/js/test.class.js dans le navigateur, mais pas lorsque vous faites référence à un JavaScript dans une page HTML? –