Qu'est-ce que je rate? Si je vais sur mysite.com:9999
je récupère mon site, mais pas mysite.com
Évidemment, les utilisateurs ne devraient pas avoir besoin de taper le port, alors que dois-je faire? Je n'essaie pas vraiment de cacher le port au lieu de demander à l'utilisateur de le saisir dans l'URL. Est-ce un paramètre de configuration Apache quelque part? Devrais-je regarder httpd.config, la configuration de conteneur ou ailleurs? C'est un hôte virtuel sur le serveur Apache. Toutes les suggestions sont appréciées.
Edit - Les blocs de l'hôte virtuel qui fonctionnent dans virtualhosts.conf se présentent comme suit:
Au début, les entrées de l'hôte virtuel portent le nom suivant:
NameVirtualHost *:700
NameVirtualHost *:710
...
NameVirtualHost *:760
Ci-dessous le bloc de travail pour la version http ressemble à ceci:
<VirtualHost *:710>
ServerName webdev.url.com
ServerAdmin [email protected]
# Comment out when OC4J instance is down for maintenance:
<IfModule mod_oc4j.c>
Oc4jMount
</IfModule>
# Uncomment when OC4J instance is down for maintenance:
# DocumentRoot "/org/dev"
# - Restrict 'Cross-Site-Tracking' or XST
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
<IfModule mod_dir.c>
DirectoryIndex index.jsp
</IfModule>
ErrorLog "|/opt/app/Oracle/product/AS10.1.2/Apache/Apache/bin/rotatelogs/logs/dev_error_log 440"
CustomLog "|/opt/app/Oracle/product/AS10.1.2/Apache/Apache/bin/rotatelogs/logs/dev_access_log 440" common
<Location "/pls/dev">
Order deny,allow
Deny from all
Allow from ####internal ip addresses####
</Location>
</VirtualHost>
Le nouveau qui nécessite la spécification du port ressemble à ceci:
## - for Mobile
<VirtualHost *:770>
ServerName mdev.url.com
ServerAdmin [email protected]
# Comment out when OC4J instance is down for maintenance:
<IfModule mod_oc4j.c>
Oc4jMount / msitedev
</IfModule>
# - Restrict 'Cross-Site-Tracking' or XST
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
<IfModule mod_dir.c>
DirectoryIndex m.jsp
</IfModule>
ErrorLog "|/opt/app/Oracle/product/AS10.1.2/Apache/Apache/bin/rotatelogs/logs/mdev_error_log 440"
CustomLog "|/opt/app/Oracle/product/AS10.1.2/Apache/Apache/bin/rotatelogs/logs/mdev_access_log 440" common
# <Location "/org/dev">
# Order deny,allow
# Deny from all
# Allow from ####
# </Location>
</VirtualHost>
Encore une fois, j'essaie simplement de déterminer si quelque chose supprime le besoin d'entrer le numéro de port (par exemple 710) dans l'URL. Après examen, il ne semble y avoir aucun fichier htaccess où que ce soit.
Voici le manuel pour enregistrements DNS SRV (RFC 2782) qui peut être utilisé pour modifier le port par défaut en fonction de ce que vous utilisez réellement:
_http._tcp.example.com. IN SRV 0 5 80 www.example.com.
où l'avant-dernier champ est le port, qui peut avoir une valeur réelle. Les enregistrements DNS SRV peuvent redéfinir le port http par défaut pour le domaine ou uniquement pour (certains) hôtes au sein du domaine.
Lorsque vous tapez l'URL dans un navigateur Web, http://www.foo.com
, il tentera toujours de se connecter sur le port 80.
Ce n'est pas tellement que le port est caché , mais plutôt que est supposé , puisque le port 80 est le port par défaut pour HTTP demandes.
Sur la même ligne, si vous accédez à https://www.foo.com
, il tentera toujours de se connecter sur le port 443, sauf si vous spécifiez un autre port (https://www.foo.com:8080
). Le port 443 est le port par défaut pour les demandes SSL/TLS.
Sauf si vous avez une raison impérieuse (par exemple, si vous exécutez 2 services Web [par exemple, Apache et IIS] simultanément sur la machine), il peut être préférable de changer simplement votre nouvel hôte virtuel sur le port 80. J'ai vu sur SO que vous avez posé une question similaire . Si vous essayez de rediriger des clients mobiles vers un autre site (ou votre application, par exemple), vous pouvez utiliser mod_rewrite en fonction de l'agent utilisateur.
Par exemple:
<VirtualHost *:80>
DocumentRoot /www/mainwebsite
ServerName www.foo.com
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} "Android|blackberry|googlebot-mobile|iemobile|ipad|iphone|iPod|opera mobile|palmos|webos" [NC]
RewriteRule ^$ http://m.foo.com/ [L,R=302]
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/mobileapp
ServerName m.foo.com
# You might check for the USER_AGENT here and redirect to the main site if not found
</VirtualHost>
Il est tard et ce qui précède est peut-être un peu décalé - si cela vous aide, peut-être que quelqu'un pourra le modifier pour qu'il soit plus correct.
Le protocole HTTP utilise le port 80 par défaut. Si vous configurez votre serveur Web pour utiliser un port non standard, vous devez spécifier le port dans l'URL. Il n'y a aucun moyen de cacher ça.
Dans Apache, vous pouvez définir le port d'écoute dans httpd.conf
, par exemple:
Listen 127.0.0.1:80
Cela peut toutefois être annulé dans la configuration vhost, par exemple:
<VirtualHost *:80>
Je réalise seulement maintenant que je n'ai jamais posté la réponse spécifique à mon problème.
En fin de compte, nous avons dû ajouter des détails à webcache.xml pour permettre à l'URL de fonctionner sans port spécifié dans l'URL.