public_html/ に割り当てられたワイルドカード サブドメイン *.domain.com があります。
私はこのようにしたい:
たとえば、/folder1/index.php は州名 (?state=statename) に基づいています。
/folder1/folder2/index.php の場合、一意の名前 (?name=uniquename) に基づきます。
したがって、www.domain.com/folder1/index.php?state=statename は statename.domain.com になります。
www.domain.com/folder1/folder2/index.php?name=uniquename は uniquename.domain.com になります
これは私のコードです
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+folder1/index\.php\?state=([^\s&]+) [NC]
RewriteRule ^ http://%1.domain.com/? [R=301,L]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+folder1/folder2/index\.php\?name=([^\s&]+) [NC]
RewriteRule ^ http://%1.domain.com/? [R=301,L]
問題は、それが public_html ディレクトリにリダイレクトされることです。コードに問題はありますか?
古いコード
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^$ /index [L]
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).domain.com$ [NC]
RewriteRule ^(index)/?$ /$1.php?name=%2 [L,NC,QSA]
コードの説明 : ユーザーが uniquename.domain.com を入力すると、自動的に www.domain.com/index.php?name=uniquename に移動しuniquename.domain.com
、URL バーは変更されません。
新しい問題の違いは、異なる状態ディレクトリがあり、ドメインが state1.uniquename.domain.com になることです。URL バーの「state1.uniquename.domain.com」も変更しないでください。