私はワードプレスで実行されているウェブサイトを持っており、そのすべてのファイルは私のホストのpublic_htmlにあります。その中に私はサブドメイン「phantomomaga」を作成し、それを「phantomomaga.my-domain.com」の代わりに「www.phantomomaga.tk」にするために他のドメインをそのサブドメインにリダイレクトしました。私のpublic_htmlの こちら に従ってください。
# 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]
この編集のおかげで私は望んでいたことを達成することができましたが、何らかの理由で私のサブドメインのパーマリンクが機能せず、自分のルートフォルダにあるwordpressインストールからエラーが見つからないままです。
# 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
.htaccessからサブドメインは完全に動作しますが、ルートドメインはめちゃくちゃになるので、問題はルートドメインまたはサブドメインのどちらかの.htaccessにあると思います。
私は自分で解決策を見つけたので、他の人が恩恵を受けるようにここに投稿しています。
これは私が次のように私の.htaccessのコード全体を再発させ、それがうまくいった
<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>
followのように複数のドメインでそうすることができます
<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>
.htaccessを使用してリダイレクトするのではなく、public_html/sub_domain_folderにリダイレクトするサブドメインの仮想ホストが必要です。その後、public_html/sub_domain_folder/.htaccessでwwwリダイレクトを実行できます。
サブドメインを作成するときにcpanelにいくつかのオプションがあるはずです。仮想ホストに直接アクセスできない場合は、サブドメインにどのフォルダを指定するかを指定してください。