Règles de réécriture Apache pour SSL dans le sous-domaine

J'ai un site Web déployé qui utilise kohana et la réécriture d'URL pour rendre les URL plus reposantes. Cela fonctionne bien.

J'ai également installé Moodle dans un sous-directory sur le même server et un sous-domaine défini pour ce directory. Donc, Moodle est installé dans un directory appelé les étudiants et le sous-domaine est students.example.com. Cela fonctionne aussi bien.

Je tente maintenant d'installer un certificate SSL dont j'ai seulement besoin sur le sous-domaine. J'ai un certificate générique Comodo, donc il est censé pouvoir travailler avec les sous-domaines. Lorsque j'utilise https://exemple.com, cela fonctionne bien, donc je peux voir que le certificate SSL est en vigueur. Cependant, lorsque je tente https://students.example.com, il redirige vers le site principal. http://students.example.com fonctionne bien cependant.

Le file .htaccess qui fonctionne pour les règles de réécriture de kohana est:

# Use PHP5.4 Single php.ini as default AddHandler application/x-httpd-php54s .php # Turn on URL rewriting RewriteEngine On # Installation directory RewriteBase / # Protect hidden files from being viewed <Files .*> Order Deny,Allow Deny From All </Files> # Protect application and system files from being viewed RewriteRule ^(?:application|modules|system)\b index.php/$0 [L] # Allow any files or directories that exist to be displayed directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Rewrite all other URLs to index.php/URL RewriteRule .* index.php/$0 [PT] Options -Indexes 

Selon les documents, il faudra append les règles suivantes pour le sous-domaine:

 #.htaccess WildCard SSL RewriteCond %{HTTP_HOST} ^students.example.com$ RewriteCond %{REQUEST_URI} !^/students/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /students/$1 RewriteCond %{HTTP_HOST} ^students.example.com$ RewriteRule ^(/)?$ students/index.php [L] 

J'ai essayé d'append ceci comme la première règle et comme la deuxième règle, mais ne fonctionnait pas. Je comprends maintenant que je devrai écrire un nouveau jeu de règles pour faire ce que je veux.

Tout conseil sur la façon d'y parvenir serait grandement apprécié. Ce site est hébergé avec Bluehost si cela fait toute la différence.

3 Solutions collect form web for “Règles de réécriture Apache pour SSL dans le sous-domaine”

Je pense que vous pourriez avoir un autre problème. Une requête HTTP ressemble à quelque chose comme:

 GET /foo.php HTTP/1.1 Host: monkedung.example.com Keep-Alive: timeout=15 Connection: Keep-Alive 

etc. Lorsque vous le cryptez avec SSL, tout après que la ligne GET est cryptée, Apache n'a même aucun moyen de savoir quel hôte vous requestz. Sans connaître l'hôte, il n'a aucun moyen de savoir quel certificate utiliser pour décrypter la requête. Il n'a également aucune idée de quel directory redirect, quel file .htaccess utiliser ou autre chose déterminé par l'hôte. Pour cette raison, AFAIK, vous ne pouvez utiliser qu'un seul hôte ssl par adresse IP.

J'essayerais de régler

 students.example.com 

comme domaine d'apache par défaut et example.com si c'est le seul que vous souhaitez utiliser pour ssl. Je triggersrais également le debugging pour vos règles de réécriture afin que vous puissiez voir s'ils triggersnt réellement. Si le problème est la question ssl mentionnée ci-dessus, je soupçonne que vous n'arrivez même pas à aller de l'avant.

J'espère que cela t'aides.

Il semble que vous essayez d'héberger example.com et students.example.com sur la même adresse IP. Ceci est bon si vous utilisez un HTTP régulier, mais si vous utilisez HTTPS (Port 443), vous devez alors le servir sur une autre adresse IP.

 <VirtualHost *:80> DocumentRoot /var/www/example.com ServerName example.com </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/students.example.com ServerName students.example.com </VirtualHost> <VirtualHost 192.168.1.10:443> DocumentRoot /var/www/example.com ServerName example.com SSLEngine on SSLCertificateFile /path/to/example.com.cert SSLCertificateKeyFile /path/to/example.com.key </VirtualHost> <VirtualHost 192.168.1.11:443> DocumentRoot /var/www/students.example.com ServerName students.example.com SSLEngine on SSLCertificateFile /path/to/example.com.cert SSLCertificateKeyFile /path/to/example.com.key </VirtualHost> 

Avez-vous examiné votre config.php dans moodle après l'interrupteur SSL?

Notez que votre $CFG->wwwroot maintenant changé. Il devrait être http s : //students.example.com

  • Comment imprimer la valeur X-forwared dans Apache?
  • Comment gérer les certs SSL dans une configuration OpenLDAP multi-master?
  • quels noms pour les certificates TLS lors de l'utilisation des loggings SRV
  • Faire en sorte que SSL fonctionne pour une application Ruby on Rails avec hébergement partagé
  • Apache2: Impossible de lire le certificate du server à partir du file
  • Marco Chamon abonache à faible contraste Marco Marco Marco Marco Marco Mountain Marco Marco Marco Marco Abonet Chamon à apon
  • Ubuntu 12.04 Certifié auto-signé LDAP SSL non accepté
  • ISA 2006 n'autorise pas le trafic utilisant FQDN
  • Erreurs de certificate Outlook / Exchange après avoir défini clientaccessserver, etc.
  • IPv6 fonctionne correctement, IPv4 lance une erreur OpenSSL
  • SNI représente-t-il un problème de confidentialité pour les visiteurs de mon site?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.