j'ai un site web fonctionnant sur wordpress et tous ses fichiers sont situés dans public_html de mon hôte. À l'intérieur de celui-ci, j'ai créé un sous-domaine "phantomomaga" et redirigé un autre domaine vers ce sous-domaine afin de le rendre "www.phantomomaga.tk" au lieu de "phantomomaga.my-domain.com" pour cela, j'ai ajouté du code au fichier .htaccess. de mon public_html comme dit ici pour le faire suivre
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#Fix missing trailing slash character on folders.
RewriteRule ^([^.?]+[^.?/])$ $1/ [R,L]
#www.phantomomaga.tk and phantomomaga.tk will map to the folder {root}/phantomomaga/
RewriteCond %{HTTP:Host} ^(?:www\.)?phantomomaga\.tk$
RewriteCond %{REQUEST_URI} !^/phantomomaga/
RewriteRule ^(.*) phantomomaga/$1 [NC,L,NS]
En raison de cette modification, j'ai pu réaliser ce que je voulais, mais pour une raison inconnue de moi maintenant, le permalien de mon sous-domaine ne fonctionne pas et je continue à avoir des erreurs non trouvées de mon installation wordpress qui se trouve dans mon dossier racine et si je supprime
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
depuis le .htaccess, le sous-domaine fonctionne parfaitement, mais la racine une gâche donc je pense que le problème est avec le .htaccess de la racine ou du sous-domaine et je ne peux pas trouver la solution même après l'avoir googlé, alors aidez-moi s'il vous plaît.
j'ai enfin trouvé la solution moi-même et je la poste maintenant afin que d'autres puissent en bénéficier
cette rechute le code entier de mon .htaccess avec ce qui suit et cela a fonctionné
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# ---------------------------------------
# BEGIN Domain to folder mapping
# pointing phantomomaga.tk to phantomomaga
ReWriteCond %{HTTP_Host} phantomomaga.tk
ReWriteCond %{REQUEST_URI} !phantomomaga/
ReWriteRule ^(.*)$ phantomomaga/$1 [L]
# END Domain to folder mapping
# ---------------------------------------
# ---------------------------------------
# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
# ---------------------------------------
# ---------------------------------------
# BEGIN htaccess pretection
<Files .htaccess>
order allow,deny
deny from all
</Files>
# END htaccess pretection
# ---------------------------------------
</IfModule>
vous pouvez le faire avec plusieurs domaines comme suivre
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# ---------------------------------------
# BEGIN Domain to folder mapping
# pointing domain_1.com to folder_1
ReWriteCond %{HTTP_Host} domain_1.com
ReWriteCond %{REQUEST_URI} !folder_1/
ReWriteRule ^(.*)$ folder_1/$1 [L]
# pointing domain_2.com to folder_2
ReWriteCond %{HTTP_Host} domain_2.com
ReWriteCond %{REQUEST_URI} !folder_2/
ReWriteRule ^(.*)$ folder_2/$1 [L]
# END Domain to folder mapping
# ---------------------------------------
# ---------------------------------------
# BEGIN WordPress
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
# ---------------------------------------
# ---------------------------------------
# BEGIN htaccess pretection
<Files .htaccess>
order allow,deny
deny from all
</Files>
# END htaccess pretection
# ---------------------------------------
</IfModule>
Vous avez besoin d'un vhost pour le sous-domaine qui redirige vers public_html/sub_domain_folder au lieu d'essayer de rediriger avec .htaccess. Vous pouvez ensuite faire une redirection www dans public_html/sub_domain_folder/.htaccess.
Il devrait y avoir une option dans cpanel lors de la création du sous-domaine. Spécifiez le dossier vers lequel il est dirigé si vous n’avez pas un accès direct à votre vhost.