Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1021 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Tester un aliasmatch / expression rationnelle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Tester un aliasmatch / expression rationnelle

n°1810690
NewsletTux
<Insérez ici votre vie />
Posté le 10-11-2008 à 23:23:41  profilanswer
 

Hello,
 
c'est plutôt un sujet type Apache, mais je ne sais où le mettre (à part DMC)  et s'il y a une meilleure catégorie, veuillez m'excuser de ne pas l'avoir vue.
 
J'administre un serveur de jeu auquel des clients, disposant de leur copie du jeu, se connectent. Lorsqu'il manque un fichier sur le client, le client a la possibilité (c'est fait de manière automatique et sans intervention humaine par son jeu) de le récupérer sur le serveur.
Pour cela, le serveur dispose en plus du jeu "principal" d'un serveur Apache (sous WAMP, sur la même machine), il envoie aux clients l'URL d'apache pour venir piocher chez lui les fichiers qui leur manquent.
 
Le jeu tourne avec un système de type "Unreal" c.à.d. un dossier System, un dossier Maps, un dossier StaticMeshes, etc. pour les différents types de fichiers.
 
En gros, je crée un alias nommé "jeu" par exemple. Je le fais pointer sur d: /mondossier_jeu/ et lorsque depuis un PC du LAN j'accède à l'URL http://ip_du_serveur/jeu/ je tombe bien sur tous les fichiers.
 
Seulement pour récupérer une carte par exemple (sous dossier maps) le jeu télécharge depuis cette URL : http: //ip_du_serveur/jeu/fichier_map.extension
 
Or en réalité, le fichier se trouve ici : d: /mondossier_jeu/Maps/fichier_map.extension
 
(en clair, ya un niveau de plus, le dossier Maps/)
 
J'ai créé qq alias mais malgré toutes mes syntaxes, ça ne passe pas ...
 
Voici le fichier de l'alias tel qu'il est actuellement :

Code :
  1. Alias /jeu/ "d: /mondossier_jeu/"
  2. AliasMatch ^/jeu/(.*).ut2 "Maps/$1.ut2"
  3. AliasMatch ^/jeu/(.*).ogg "Music/$1.ogg"
  4. AliasMatch ^/jeu/(.*).uax "Sounds/$1.uax"
  5. AliasMatch ^/jeu/(.*).utx "Textures/$1.utx"
  6. AliasMatch ^/jeu/(.*).usx "StaticMeshes/$1.usx"
  7. AliasMatch ^/jeu/(.*).u   "System_public/$1.u"
  8. <Directory "d:/server/mondossier_jeu/">
  9.     Options Indexes FollowSymLinks MultiViews
  10.     AllowOverride all
  11.         Order allow,deny
  12.     Allow from all
  13. </Directory>
  14. <Directory "d:/server/mondossier_jeu/System">
  15.     Options Indexes FollowSymLinks MultiViews
  16.     AllowOverride all
  17.         Order allow,deny
  18.     Allow from localhost
  19. </Directory>


 
le problème, c'est que si je tape http: //ip_du_serveur/jeu/fichier_map.ut2 ça ne marche pas ... (ut2 est l'extension). Or ça devrait implicitement me mettre dans Maps/
En revanche, si je tape : http: //ip_du_serveur/jeu/Maps/fichier_map.ut2, ça marche ... (mais je ne peux pas modifier l'URL dans le jeu, cf. plus bas)
 
Ce que j'ai essayé :
AliasMatch ^/jeu/(.+).ut2 "Maps/$1.ut2"
AliasMatch ^/jeu/(.*).ut2$ "Maps/$1.ut2"
AliasMatch ^/(.*).ut2 "Maps/$1.ut2"
AliasMatch ^(.*).ut2 "Maps/$1.ut2"
AliasMatch ^/jeu/(.*)\.ut2 "Maps/$1.ut2"
AliasMatch ^/jeu/(.*)\.ut2$ "Maps/$1.ut2"
 
Rien ne marche ... Avec certaines écritures, WAMP ne se lance plus. Si quelqu'un a une idée supplémentaire, je suis preneur ... Sur le forum de WAMP, ya rien.
 
 
EDIT : ne pouvant pas modifier le jeu, je ne peux pas modifier l'URL de téléchargement ... Chaque client reçoit du serveur maître à la connexion l'URL pour les fichiers manquants : http: //ip_du_serveur/jeu/ et c'est tout ... Les alias match ne sont là que pour "trier par extension" les fichiers téléchargés.


Message édité par NewsletTux le 10-11-2008 à 23:41:05

---------------
NewsletTux - outil de mailing list en PHP MySQL
mood
Publicité
Posté le 10-11-2008 à 23:23:41  profilanswer
 

n°1810752
CAJAX
Posté le 11-11-2008 à 00:51:26  profilanswer
 

Essayez avec ModRewrite
 

RewriteEngine on
RewriteBase   /
 
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
 
RewriteRule  ^/?jeu/(.*)\.ut2$ /Maps/$1.ut2 [L]
# etc


 
 
L'information à error.log et acces.log peut être aussi utile dans le réglage :)


Message édité par CAJAX le 11-11-2008 à 00:56:12
n°1810763
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 11-11-2008 à 01:21:07  profilanswer
 

Hello,
J'ai essayé, mais dans le access.log, il me dit qu'il y a une histoire de redirection en boucle et ça marche pas ...
 
Si je fais ce que t'as dit, il me redirige vers d:\wamp\www\ (alors que c'est pas là qu'est mon alias) et si je mets en plus /jeu/ dans l'URL redirigée, j'ai l'erreur ci-dessus.


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1810803
mIRROR
Chevreuillobolchévik
Posté le 11-11-2008 à 11:58:23  profilanswer
 

^(?:.*)/jeu/(.*)\.ut2$


ca devrait marcher


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
n°1810813
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 11-11-2008 à 12:26:56  profilanswer
 

Hello,
merci de ta réponse, mais niet ...
 
voici l'erreur que j'ai :
 
Apache - access.log

Citation :


172.16.1.104 - - [11/Nov/2008:11:21:33 +0100] "GET /jeu/fichier.ut2 HTTP/1.1" 404 229


 
Apache - error.log

Citation :


[Tue Nov 11 11:21:33 2008] [error] [client 172.16.1.104] File does not exist: d: /mondossier_jeu/fichier.ut2


 
EDIT : si, manuellement, j'entre dans un navigateur d: /mondossier_jeu/Maps/fichier.ut2 ça marche bien ... comme quoi le fichier est bien présent.


Message édité par NewsletTux le 11-11-2008 à 12:28:15

---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1810821
mIRROR
Chevreuillobolchévik
Posté le 11-11-2008 à 12:44:15  profilanswer
 

172.16.1.104 - - [11/Nov/2008:11:21:33 +0100] "GET /jeu/fichier.ut2 HTTP/1.1" 404 229

 

il a pas demandé Maps ? zarb
tu reussis a chopper des fichiers dans ton dossier jeu?

 

edit:
dans ta réécriture essaie quand meme "jeu/Maps/$1.ut2" on sait jamais :D


Message édité par mIRROR le 11-11-2008 à 12:45:59

---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
n°1810845
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 11-11-2008 à 13:56:41  profilanswer
 

Je suis sous Apache 2.2.8., logiquement il gère les aliasmatch.
 
Oui, je suis bien de ton avis, c'est étonnant qu'il n'y ait pas de trace du dossier "Maps", ou alors j'ai écrit ça n'importe comment ...


---------------
NewsletTux - outil de mailing list en PHP MySQL

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Tester un aliasmatch / expression rationnelle

 

Sujets relatifs
Débogage : quels navigateurs tester ? Chrome, IE8 ?Tester une interface graphique GTK
[expression reguliere] besoin d'aidetester la présence d'un espace dans une chaine.
Cmd pour tester si un fichier est utilisé ....[Javascript] Tester l'existence d'un point avec l'api google map
[Access] - l'expression ne fait pas partie de la fonction d'agregattester une requete sql avant son execution
[JS] clean word et expression régulièreExpression régulière particulière
Plus de sujets relatifs à : Tester un aliasmatch / expression rationnelle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR