Aller au contenu

Redirection 301 /dossier vers sous domaine


Sujets conseillés

J'ai profité du passage de ma plateforme de blogs sur mon dédié pour passer les blogs en sous domaine. Seulement les anciens blogs sont sous la forme site/user.

Actuellement les blogs sont accessible des deux façon, exemple :

http://achtungbaby.blog-pression.org

et

http://blog-pression.org/achtungbaby

afin d'éviter le duplicate content, je voudrais faire une redirection 301 du dossier vers le sous domaine, et ainsi aussi pouvoir récupérer le PR et référencement de chaque blogs.

Quelle est la meilleure méthode ?

nb : c'est le premier site qui fait la bascule sur mon didié :fete:

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Dans un fichier .htaccess à placer à la racine de ton site :

RedirectMatch 301 /(.*)$ http://$1.blog-pression.org

Tu devras surement modifier l'expression régulière car cela prend tout ce qui se trouve après le premier "/" et l'utilise comme nom de sous-domaine. Mais je ne connais pas l'implémentation de tes blog (s'ils ont des sous-répertoires, s'ils utilisent des nom de fichiers, de l'URL rewriting, ...)

** EDIT **

Tu n'auras plus que quelques modifications à faire, il faut aussi éviter que lorsqu'aucun dossier n'est spécifié il utilise cette règle... reste à travailler sur cette expression régulière...

** EDIT2 **

J'ai corrigé le flag...en fait j'ai confondu avec le RewRite... le 301 juste après RedirectMatch, vuq ue c'est de tout façon une redirection ;)

Modifié par TheRec
Lien vers le commentaire
Partager sur d’autres sites

Voila le fichier .htaccess actuel :

<Files .htaccess> 
deny from all
</Files>

<Files config.properties.php>
deny from all
</Files>

Options -Indexes
Options +FollowSymLinks

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Permalink to the blog entry (i.e. /plog/1_userfoo/archive/3_title-foo-bar.html)
RewriteRule ^([0-9]+)_[^/]+/archive/([0-9]+)_[^.]+\.html$ index.php?op=ViewArticle&blogId=$1&articleId=$2 [L,NC]

# Monthly archive (i.e. /plog/1_userfoo/archive/200401.html)
RewriteRule ^([0-9]+)_[^/]+/archive/([0-9]{6})\.html$ index.php?blogId=$1&Date=$2 [L,NC]

# Daily archive (i.e. /plog/1_blogfoo/archive/20040101.html)
RewriteRule ^([0-9]+)_[^/]+/archive/([0-9]{8})\.html$ index.php?blogId=$1&Date=$2 [L,NC]

# Album (i.e. /plog/88_userfoo/albums/34_title-foo-bar.html)
RewriteRule ^([0-9]+)_[^/]+/albums/([0-9]+)_[^.]+\.html$ index.php?op=ViewAlbum&blogId=$1&albumId=$2 [L,NC]

# Albums (i.e. /plog/88_userfoo/albums/)
RewriteRule ^([0-9]+)_[^/]+/albums/$ index.php?op=ViewAlbum&blogId=$1&albumId=0 [L,NC]

# Category view (i.e. /plog/88_userfoo/categories/4_cat-foobar.html)
RewriteRule ^([0-9]+)_[^/]+/categories/([0-9]+)_[^.]+\.html$ index.php?blogId=$1&postCategoryId=$2 [L,NC]

# Category-Feeds (i.e. /plog/3_userfoo/feeds/categories/2_category/atom)
RewriteRule ^([0-9]+)_[^/]+/feeds/categories/([0-9]+)_[^.]+/(.*)$ rss.php?blogId=$1&categoryId=$2&profile=$3 [L,NC]

# Feeds (i.e. /plog/3_userfoo/feeds/atom)
RewriteRule ^([0-9]+)_[^/]+/feeds/(.*)$ rss.php?blogId=$1&profile=$2 [L,NC]

# Trackbacks (i.e. /plog/3_userfoo/trackbacks/34_title-foo-bar.html)
RewriteRule ^([0-9]+)_[^/]+/trackbacks/([0-9]+)_[^.]+\.html$ index.php?op=Trackbacks&blogId=$1&articleId=$2 [L,NC]

# Comment form (i.e. /plog/88_userfoo/comment/34_title-foo-bar.html)
RewriteRule ^([0-9]+)_[^/]+/comment/([0-9]+)_[^.]+\.html$ index.php?op=Comment&blogId=$1&articleId=$2 [L,NC]

# Resources (i.e. /plog/88_userfoo/resources/this-is-a-resource-name.pdf.html)
RewriteRule ^([0-9]+)_[^/]+/resources/([^.]+)\.([^.]+)\.html$ index.php?op=ViewResource&blogId=$1&resource=$2.$3 [L,NC]

# Download a resource (i.e. /plog/88_userfoo/get/this-is-a-resource-name.pdf)
RewriteRule ^([0-9]+)_[^/]+/get/(.+)$ resserver.php?blogId=$1&resource=$2 [L,NC]

# Static Pages (i.e /plog/3_userfoo/demosites)
RewriteRule ^([0-9]+)_[^/]+/(.+)$ index.php?op=Template&blogId=$1&show=$2 [NC]

# A non-default blog (i.e. /plog/88_userfoo)
RewriteRule ^([0-9]+)_[^/]+$ index.php?blogId=$1 [L,NC]

# Daly archive (i.e. /plog/1_userfoo/archive/20040101.html)
RewriteRule ^([0-9]+)_[^/]+/archive/([0-9]{8})\.html$ index.php?blogId=$1&Date=$2 [L,NC]

# Blog
RewriteRule ^([a-z0-9_]+)$ error.php [L,NC]

</IfModule>



<Files post>
ForceType application/x-httpd-php
</Files>

<Files archives>
ForceType application/x-httpd-php
</Files>

<Files static>
ForceType application/x-httpd-php
</Files>

<Files rss>
ForceType application/x-httpd-php
</Files>

<Files category>
ForceType application/x-httpd-php
</Files>

<Files trackbacks>
ForceType application/x-httpd-php
</Files>

<Files comment>
ForceType application/x-httpd-php
</Files>

<Files resource>
ForceType application/x-httpd-php
</Files>

<Files get>
ForceType application/x-httpd-php
</Files>

<Files album>
ForceType application/x-httpd-php
</Files>

<Files blog>
ForceType application/x-httpd-php
</Files>

ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php


DirectoryIndex index.html summary.php index.php



Lien vers le commentaire
Partager sur d’autres sites

Je pense que tu peux t'en sortir avec ceci :

RedirectMatch 301 ^/([a-z0-9_]+)[/]?(.*)$ http://$1.blog-pression.org/$2

Le premier répertoire sera utilisé comme le sous-domaine, tout ce qui suit s'il y a quelque chose qui suit sera utilisé comme chemin...

** EDIT **

Inconvénient de taille de cette règle tu ne peux plus avoir de répertoire pour ton site de base :S

Modifié par TheRec
Lien vers le commentaire
Partager sur d’autres sites

Et quels sont les symptomes ? Un simple "ça ne marche pas" ne m'aide pas beaucoup...donne-nous un peu de détails sur ce qui ne marche pas.

PS: Mets la ligne RedirectMatch en fin de ton fichier .htaccess ...

Lien vers le commentaire
Partager sur d’autres sites

Le redirect est bien en fin de htaccess. Par exemple, blog-pression.org qui est censé aller sur la page d'accueil est rewrité par la commande et devient index.blog-pression.org qui n'existe pas.

Dans la règle de rewrite, summary.php est l'index :

DirectoryIndex index.html summary.php index.php

index.php c'est l'appel d'un blog par index.php?id=xxx (c'est ça qui est rewrité pour devenir {user}.blog-pression.org

Lien vers le commentaire
Partager sur d’autres sites

Dans la règle de rewrite, summary.php est l'index :

DirectoryIndex index.html summary.php index.php

Si tu veux que summary soit présenté par défaut, il faut le mettre en premier dans cette liste.

Passe index.html en dernière position, ou vires-le si tu n'as pas de fichier index.html. ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...