1. zentrale Ziele
Ändern Sie die URL-Struktur Ihrer WordPress-Website von der traditionellenKatalog-FormularDie elegante Verwandlung in ein modernesFormulare für Subdomainsund stellen Sie sicher, dass sie suchmaschinenfreundlich ist.
- URL-Struktur vor der Konvertierung:
https://your-domain.com/[前缀]/[变量]/
- URL-Struktur nach der Konvertierung:
https://[变量].your-domain.com/
Schlüsselplatzhalter Beschreibung:
your-domain.com
Ihr primärer Domänenname (z. B.:aigcsoft.site
).[前缀]
Ein fester Verzeichnisname, den Sie verwenden, um Ihre Inhalte zu organisieren (z. B.:tool
,app
,showcase
).[变量]
: Ein eindeutiger Bezeichner (Slug) für einen Artikel oder eine Seite (z.B.:tiktokalyzer-tool
).
2. vorbereitende Arbeiten und Kernkonzepte
Bevor Sie beginnen, vergewissern Sie sich, dass Sie alles haben:
- DNS-Verwaltungsrechte für Ihre Webdomäne.
- Backend-Administrationsrechte (z.B. Pagoda Panel, cPanel, Plesk, etc.) Ihres Webservers (Host).
Die Umsetzung dieses Programms beruht auf drei großen Modulen, die zusammenarbeiten:
- DNS-SchichtAls "Adressbuch" verweisen Sie alle Subdomains auf Ihren Server.
- Webserver-Schicht (Nginx/Apache)Traffic Director": Nimmt alle Anfragen entgegen und bearbeitet domänenübergreifende und andere Richtlinien.
- WordPress-Anwendungsschicht (PHP)Funktioniert als "Content-Engine", die auf intelligente Weise Anfragen erkennt, Links umschreibt und Umleitungen vornimmt.
3. ausführliche Konfigurationsschritte
Schritt 1: Konfigurieren der DNS-Flood-Auflösung
Dies ist die Grundlage dafür, dass jede Subdomain Ihren Server findet.
- PlatzierungDas DNS-Verwaltungspanel Ihres Domain-Namen-Registrars.
- Rigg: Einen Artikel hinzufügen A Aufzeichnungen.
- Host-Datensatz (Host/Name)::
*
(Sternchen) - Satzart::
A
- Wert aufzeichnen (Wert / Punkte bis)::
您服务器的 IPv4 地址
- TTL: Verwenden Sie den Standardwert.
- Host-Datensatz (Host/Name)::
Schritt 2: Konfigurieren Sie den Webserver
2.1 Hinzufügen einer Flooding Site und Konfigurieren von SSL
- PlatzierungPagoda Panel oder ein anderes Hosting-Administrationspanel -> Website-Verwaltung.
- Rigg::
- Seite hinzufügen: Geben Sie in das Feld "Domain Name" ein
*.your-domain.com
erstellen Sie die Website. - SSL-Zertifikat beantragen: Beantragen Sie einen für den StandortWildcard-ZertifikatLet's Encrypt. Wenn Sie Let's Encrypt verwenden, vergewissern Sie sich auch, dass die
*.your-domain.com
im Gesang antwortenyour-domain.com
. - HTTPS erzwingenNachdem Sie das Zertifikat erfolgreich bereitgestellt haben, aktivieren Sie die Funktion "HTTPS erzwingen".
- Seite hinzufügen: Geben Sie in das Feld "Domain Name" ein
2.2 Konfigurieren Sie die CORS-Cross-Domain-Richtlinie (um Probleme beim Laden von Symbolen/Schriften zu beheben)
(coll.) durchfallen (ein Schüler) [变量].your-domain.com
Die Seite muss geladen werden your-domain.com
Diese Konfiguration ist erforderlich für die Schrift- oder Symboldateien auf der Seite
- Platzierung: SieHauptseite (
your-domain.com
) des Standortprofils. - Rigg::
- Für Nginx-Benutzer::
in der Nginx-Konfigurationsdatei auf dem Master.server{}
Fügen Sie innerhalb des Blocks den folgenden Code ein:# --- 为字体文件添加 CORS 跨域许可 --- location ~* \.(eot|otf|ttf|woff|woff2)$ { # 允许任何来源的页面请求此服务器上的字体文件。 add_header 'Access-Control-Allow-Origin' '*' always; }
- Für Apache-Benutzer::
Im Stammverzeichnis des Masters.htaccess
Datei den folgenden Code ein:# --- 为字体文件添加 CORS 跨域许可 --- <FilesMatch "\.(eot|otf|ttf|woff|woff2)$"> Header set Access-Control-Allow-Origin "*" </FilesMatch>
- Für Nginx-Benutzer::
- Speichern Sie die Konfigurationsdatei und laden Sie den Dienst neu.
Schritt 3: Ändern der WordPress-Kerndateien
Dies ist das Herzstück der Realisierung aller dynamischen Funktionen.
3.1 Änderungen wp-config.php
Dateien (die sich im Stammverzeichnis der Website befinden)
Diese Datei ist für die "Übersetzung" von Subdomain-Anfragen im Hintergrund zuständig.
Rigg: in wp-config.php
(in Form eines Nominalausdrucks) <?php
Fügen Sie nach dem Tag den folgenden Codeblock ein.Stellen Sie sicher, dass Sie Ihren eigenen Domänennamen und das Präfix entsprechend den Kommentaren ändern!
/**
* ===================================================================
* 子域名泛解析配置: 内部请求重写
* ===================================================================
* 作用:当服务器接收到子域名请求时 (例如: a.b.com), 在 WordPress 内部
* 将其解析为对特定目录的访问 (例如: /prefix/a/),而浏览器地址
* 栏的 URL 保持子域名不变。
*/
if (isset($_SERVER['HTTP_HOST'])) {
// --- 请在这里修改为您自己的配置 ---
$main_domain_parts = ['your-domain-part-1', 'your-domain-part-2']; // 例如: ['aigcsoft', 'site']
$url_prefix = 'tool'; // 这是您的固定目录前缀, 例如: 'tool', 'app' 等。
// --------------------------------
$host_parts = explode('.', $_SERVER['HTTP_HOST']);
// 判断条件:域名由3部分组成, 且不是www, 且主域名匹配
if (count($host_parts) === 3 && $host_parts[0] !== 'www' && $host_parts[1] === $main_domain_parts[0] && $host_parts[2] === $main_domain_parts[1]) {
$subdomain = $host_parts[0];
// 将请求 URI 重写为/前缀/目录下的对应页面
$_SERVER['REQUEST_URI'] = '/' . $url_prefix . '/' . $subdomain . '/';
}
}
3.2 Änderungen functions.php
Datei (die sich im Verzeichnis wp-content/themes/your-active-theme/
)
Diese Datei ist für drei wichtige Aufgaben verantwortlich: das Verhindern von Umleitungsschleifen, das dynamische Umschreiben von Links und die Behandlung von 301-Sprüngen für alte Links.
Rigg: In Ihrem aktuellen Theme ist functions.php
PapiereExtremitätfügen Sie den folgenden vollständigen Codeblock hinzu.Auch hier gilt: Bitte ändern Sie Ihren eigenen Domainnamen und das Präfix entsprechend den Kommentaren!
/**
* ===================================================================
* 子域名泛解析功能包: URL处理 & SEO重定向
* ===================================================================
*/
// --- 请在这里修改为您自己的配置 ---
$MY_APP_CONFIG = [
'main_domain' => 'your-domain.com', // 您的主域名, 例如: 'aigcsoft.site'
'url_prefix' => 'tool', // 您在 wp-config.php 中设置的相同前缀, 例如: 'tool'
];
// --------------------------------
/**
* 功能 1: 禁用 WordPress 规范链接重定向
* 作用:这是整个方案的基石。防止 WordPress 将子域名请求自动301跳转回
* 带目录的 URL,从而避免无限重定向循环。
*/
remove_filter('template_redirect', 'redirect_canonical');
/**
* 功能 2: 动态重写网站内所有相关链接
* 作用:在页面生成时,自动将 /prefix/slug/ 格式的链接替换为 slug.domain.com
* 的子域名格式,实现完美的伪静态效果。
*/
function my_theme_rewrite_internal_links($permalink, $post) {
global $MY_APP_CONFIG;
$prefix_to_check = '/' . $MY_APP_CONFIG['url_prefix'] . '/';
if (strpos($permalink, $prefix_to_check) !== false) {
$subdomain = $post->post_name; // 获取文章的 slug
return 'https://' . $subdomain . '.' . $MY_APP_CONFIG['main_domain'] . '/';
}
return $permalink;
}
add_filter('post_link', 'my_theme_rewrite_internal_links', 20, 2); // 捕获标准文章链接
add_filter('post_type_link', 'my_theme_rewrite_internal_links', 20, 2); // 捕获自定义内容类型链接
/**
* 功能 3: 为旧链接设置 301 永久重定向
* 作用:当用户或搜索引擎直接访问旧的 /prefix/slug/ 格式的 URL 时,
* 自动执行一个 SEO 友好的 301 重定向,跳转到新的子域名地址。
*/
function my_theme_redirect_old_urls() {
global $MY_APP_CONFIG;
$domain_to_check = $MY_APP_CONFIG['main_domain'];
$prefix_to_check = '/' . $MY_APP_CONFIG['url_prefix'] . '/';
// 仅当访问的是主域名,且URL路径包含指定前缀时才执行
if ( $domain_to_check == $_SERVER['HTTP_HOST'] && strpos($_SERVER['REQUEST_URI'], $prefix_to_check) === 0 ) {
$slug = trim(str_replace($prefix_to_check, '', $_SERVER['REQUEST_URI']), '/');
if (!empty($slug)) {
$new_url = 'https://' . $slug . '.' . $domain_to_check . '/';
wp_redirect($new_url, 301); // 执行301永久重定向
exit;
}
}
}
add_action('template_redirect', 'my_theme_redirect_old_urls');
4. endgültige Validierung und Fehlerbehebung
- Löschen des CachesNach Abschluss aller Änderungen.unbedingtLöschen Sie den WordPress-Plugin-Cache (z. B. WP Rocket), den CDN-Cache (falls vorhanden) und den Browser-Cache. Es wird dringend empfohlen, Folgendes zu verwendenKein Trace-ModusFühren Sie den Test durch.
- Link überprüfenBesuchen Sie die Startseite Ihrer Website und klicken Sie mit der rechten Maustaste auf einen der Tool-/Artikellinks, um dessen Inhalt zu sehen.
href
Wurde das Attribut geändert inhttps://[变量].your-domain.com/
Format. - Umleitung überprüfen: In der Adressleiste Ihres Browsersmanuelle EingabeEine alte Adresse wie
https://your-domain.com/[前缀]/[变量]/
Beobachten Sie nach dem Drücken der Eingabetaste, ob die Adressleiste sofort auf die neue Subdomain-Adresse springt. - Validierung von SubdomänenBesuchen Sie eine Subdomain-Adresse direkt, um zu sehen, ob die Seite korrekt angezeigt wird und alle Symbole und Stile korrekt geladen werden.
Häufig gestellte Fragen Fehlersuche:
- Unendliche Umleitungen (ERR_TOO_MANY_REDIRECTS): Inspektion
functions.php
Haben Sie dieremove_filter('template_redirect', 'redirect_canonical');
. - Icons/Schriften werden als Kästchen oder X angezeigtÜberprüfen Sie, ob die CORS-Cross-Domain-Konfiguration in Schritt 2.2 korrekt hinzugefügt wurde und in Kraft ist.
- Link unverändert: Inspektion
functions.php
Mitte$MY_APP_CONFIG
Die Domänennamen und Präfixe in der Website sind genau dieselben wie in Ihrer Website. - Weißer Bildschirm oder 500-Fehler auf der Website: Inspektion
wp-config.php
vielleichtfunctions.php
Gibt es PHP-Syntaxfehler (normalerweise Fehler beim Kopieren und Einfügen)?
Bitte bewahren Sie dieses Dokument an einem sicheren Ort auf, denn es wird Ihnen in Zukunft von unschätzbarem Wert sein, wenn Sie Server-Migrationen oder Themen-Upgrades durchführen oder dieselbe Strategie für neue Projekte implementieren.