web-dev-qa-db-fra.com

htaccess redirige une page du domaine racine vers la page du même nom de sous-domaine

sur mon site Wordpress, je dois

http://example.com/page1/

rediriger vers

http://site.example.com/page1/

J'ai essayé ceci:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_Host} ^example\.com$ [OR]
RewriteCond %{HTTP_Host} ^www\.example\.com$
RewriteRule ^page1$ "http\:\/\/site\.example\.com\/page1\/" [R=301,L]
</IfModule>

Ce qui précède n'a pas fonctionné. J'ai également enlevé les guillemets doubles et les barres obliques d'échappement et juste mettre directement l'URL, mais sans succès. Je vais vraiment apprécier l'aide.

4
atul

http://example.com/page1/

RewriteRule ^page1$ ....

Il vous manque une barre oblique à la fin du RewriteRulemotif. Essayez ce qui suit dans le fichier .htaccess à la racine du document example.com. Cela devra aller avant tous les WordPress existants.

RewriteEngine On

RewriteCond %{HTTP_Host} ^(www\.)?example\.com$ [NC]
RewriteRule ^page1/$ http://site.example.com/page1/ [R=301,L]

J'ai également supprimé les guillemets et les barres d'échappement ...

Oui, pas besoin de la pléthore de backslash échappe. Cela ressemble à l'une des tentatives de cPanel.

Aussi, pas besoin de l'encapsuleur <IfModule>, à moins que cela ne soit censé "fonctionner" sans que mod_rewrite soit installé?

La directive RewriteBase est également superflue ici. (Notez que vous ne devriez avoir qu'une directive RewriteBase dans votre fichier .htaccess - WordPress l'écrit déjà.)

1
MrWhite

Vous pouvez également essayer cette solution en remplaçant la règle de réécriture par la ligne ci-dessous dans le fichier .htaccess.

Redirect /page1/   http://site.example.com/page1/
0
himeshc_IB