Nous avons un compte GoDaddy et utilisons une redirection comme paramètre fictif pour notre site principal, conformément aux instructions de la direction. Ils veulent que "dev" et "staging" accèdent à notre application mais que tout le reste soit dirigé vers la redirection.
Nous voulons avoir accès à notre application via un sous-domaine "staging". Je n'arrive pas à faire en sorte que cette chose fonctionne. Entre la redirection GoDaddy, le fichier de la zone DNS, les fichiers activés pour les sites (sur notre serveur) et les hôtes, je suis bloqué. Nous utilisons une AMI AWS exécutant Ubuntu 14.04.3 LTS.
Voici ce que j'essaie de faire (le texte et les chiffres ont été modifiés pour protéger l'innocent):
Si vous tapez:
http://dev.phishmenot.com
-> Le site dans notre répertoire de développement sur notre serveur.
http://staging.phismenot.com
-> Le site dans notre répertoire de transfert sur notre serveur.
http://[anything else].phishmenot.com
-> (REDIRECT 301: site web KickoffLabs)
Notre configuration est la suivante:
Ensuite, nous avons le fichier de zone actuel:
Mon fichier hosts (sur notre serveur AWS):
127.0.0.1 localhost
67.4.67.45 dev.phishmenot.com
67.4.67.45 staging.phishmenot.com
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Et voici mon fichier staging.phishmenot.com.conf , situé dans le répertoire sites-available, avec le lien symbolique placé de manière appropriée dans le répertoire sites activés:
<VirtualHost staging.phishmenot.com:80>
ServerAdmin [email protected]
ServerName phishmenot.com
ServerAlias staging.phishmenot.com
DocumentRoot /var/www/staging/current
ErrorLog ${Apache_LOG_DIR}/error.log
CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>
Nous utilisons KickoffLabs pour faire une partie de la promotion de notre site et j'ai suivi leurs instructions pour la configuration. Ce qui est étrange, c’est que je DID fais fonctionner le site de développement. Je ne me souviens tout simplement pas comment je l'ai fait. Je pense que j'ai juste continué à peaufiner les choses jusqu'à ce que cela fonctionne, puis je devais revenir au développement.
Je ne suis certainement pas un expert Unix ou Server. Appelez-moi un amateur averti. J'aimerais que cela soit configuré de manière standard afin que nous puissions identifier quelqu'un qui SAIT ce qu'il fait, ce sera reconnaissable à distance.
METTRE À JOUR:
J'ai essayé les modifications que vous avez suggérées et je ne peux plus accéder à mon site www.phishmenot.com OR le site www.kickofflabs.com. Voici mon fichier .htaccess
; vrais noms et adresses supprimés, mais cohérents avec cette question:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_Host} !^(dev|staging).phishmenot.com$
RewriteRule ^(.*) http://proxy.kickofflabs.com/$1 [QSA,L,R=301]
# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
Header set Expires "Thu, 19 Nov 1981 08:52:00 GM"
Header set Cache-Control "no-store, no-cache, must-revalidate, post-check=0, pre-check=0"
Header set Pragma "no-cache"
Selon la suggestion, j'ai supprimé la redirection de GoDaddy, en gérant tout au long du .htaccess file
. J'ai également supprimé l'enregistrement CNAME pour "www" vers le proxy des laboratoires de lancement. Maintenant, la mise en place des redirections vers www.phishmenot.com qui n’adresse plus aucun serveur. Je pensais que le @ dans l’enregistrement a était censé intercepter tout ce qui n’était pas répertorié comme un enregistrement A ou CNAME. REMARQUE: Les commandes supplémentaires mod_rewrite prennent en charge notre infrastructure d'application, CodeIgniter. S'il y a un conflit, je peux faire des ajustements.
OK Bien, en regardant votre configuration, vous voulez une redirection htaccess qui est simple.
www.example.com
, utilisez le "@
" une entrée d'enregistrement comme adresse IP de l'AWS, ainsi non-www
and www
fonctionnera comme prévu. ..htaccess
c'est-à-dire /var/www/dev/.htaccess
dans le stockage intermédiaire et le développement.Remplissez les deux fichiers .htaccess avec quelque chose comme:
RewriteCond %{HTTP_Host} !^(dev|staging|www).example.com$
RewriteRule ^(.*) http://www.example.com/$1 [QSA,L,R=301]
Le code ci-dessus redirigera tous les sous-domaines qui ne sont pas dev, staging ou www vers le site principal. Je recommande également d'utiliser un htaccess sur le site principal pour pouvoir rediriger gracieusement de non-www vers www, d'où la raison pour laquelle j'ai mentionné l'enregistrement A en utilisant @
, le fichier htaccess devrait fonctionner sur les trois de vos sites.
La gestion de vos redirections côté serveur fonctionne beaucoup mieux que sur le DNS. Peu importe, vous pouvez effectuer plus de réécritures techniques au besoin. En règle générale, il est de mise standard de rediriger côté serveur si vous vous engagez dans un débat avec votre grand patron.
modifier.
Si vous souhaitez rediriger entièrement vers un autre domaine vers d'autres domaines que les sous-domaines mentionnés, vous devez choisir d'utiliser une redirection .htaccess sur le stockage intermédiaire et sur le site de développement. Créez simplement un fichier .htaccess vierge à la racine des deux sites et remplissez le fichier avec:
RewriteCond %{HTTP_Host} !^(dev|staging).siteA.com$
RewriteRule ^(.*) http://www.siteB.com/$1 [QSA,L,R=301]
Encore une fois, assurez-vous que votre serveur est activé pour la réécriture, sinon rien ne se passera lors des tests.