我知道有很多关于这个话题的主题,但是尽管有很多小时的搜索和尝试,我真的无法找到解决方案。所以我决定寻求帮助。
这是我的全景
1)我有一个域 www.mydomain.com ,其中包含Wordpress安装和通配符SSL证书
正如您可能知道的那样,Wordpress已经在.htaccess中编写了一些规则,这些规则:
# 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>
2)现在我需要在其他子域中添加额外的wordpress安装(没有WPMU,但是安装不同),将它们指向我想称为“subdomain_NAMEOFTHESUBDOMAIN”的子目录
3)据我所知,扩展SSL证书我无法通过cPanel创建子域名,但我必须使用.htaccess规则
这是我能够获得的地方:
1)我创建了一个通配符CNAME * .mydomain.com
2)我在public_html文件夹中创建了一个名为“subdomain_xxx”的目录
3)我已添加这些规则(在wordpress规则之前)将子域“ xxx.mydomain.com ”指向“ subdomain_xxx ”文件夹
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^subdomain_xxx/ - [L]
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$
RewriteRule ^(.*)$ subdomain_xxx/$1 [L]
</IfModule>
起初似乎有效:
但存在问题:
如果我尝试复制任何其他htaccess-subdomain /子目录对的过程, 例如“subdomain_yyy”和“yyy.mydomain.com”,复制以前的规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^subdomain_yyy/ - [L]
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$
RewriteRule ^(.*)$ subdomain_yyy/$1 [L]
</IfModule>
我继续被重定向到创建的第一个子域:xxx.mydomain.com
非常清楚,这是我完整的.htaccess内容:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^subdomain_xxx/ - [L]
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$
RewriteRule ^(.*)$ subdomain_xxx/$1 [L]
RewriteRule ^subdomain_yyy/ - [L]
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.com$
RewriteRule ^(.*)$ subdomain_yyy/$1 [L]
</IfModule>
# 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>
肯定有很多我不了解.htaccess(和正则表达式),所以我不仅要寻找快速解决方案,还要寻找其他一些信息来加深我对此事的理解。 我希望有人能够找到耐心。
提前致谢
答案 0 :(得分:2)
我刚刚发现了如何正确地做到这一点
我使用的规则都错了。
这是正确的方法
RewriteCond %{HTTP_HOST} ^xxx.mydomain.com$ [NC]
RewriteRule ^(.*)$ /subdomain_xxx/$1 [L]
如果有人发表评论我会很高兴看到它,谢谢