现在我正在设置一个新的Wordpress-Multisite。 我正在使用Maria-DB和Apache2.4运行UNIX-Machine(Debian9)。该多站点应该是带有语言子站点和子域的多站点网络。现在,除了我的“语言重定向”之外,其他所有功能都正常。
我的问题包括两部分:
第1部分:
我需要锁定我的Root-Site,并将每个查询重定向到其语言子文件夹。
这意味着:如果有人输入https://my-site.com/,则应将其重定向到https://my-site.com/BROWSER_Language;如果不支持浏览器语言,则应始终将访问者重定向到https://my-site.com/en/
第2部分:我想对不同的项目使用子域。我的子域应始终看起来像subdomain.my-site.com
。我想停用所有子域的所有重定向。
这是我到目前为止所做的: 我使用以下网址安装了Wordpress https://www.my-site.com/
我使用以下.htaccess创建了WP-Multisite:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
我已经修改了.htaccess文件($ 2),该文件适用于子文件夹和子域-安装....
现在,我在Apache的VirtualHost-File中创建了一些更改,因为我想将访问者重定向到BrowserLanguage:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
## Rewriting url for EN browser
RewriteCond %{REQUEST_URI} !^/(en|de)/ [NC]
RewriteCond %{HTTP:Accept-Language} ^(en|de).*$ [NC]
RewriteRule ^/?(.*)/$ https://%{HTTP_HOST}/%1/$1 [L]
#RewriteCond %{HTTP:Accept-Language} ^de.*$ [NC]
#RewriteRule ^/$ https://%{HTTP_HOST}/de/$1 [L]
#RewriteRule ^/?(.*) https://%{HTTP_HOST}/de/$1 [L]
## Rewriting url for JP browser
RewriteCond %{HTTP:Accept-Language} ^ja [NC]
RewriteRule ^/$ https://%{HTTP_HOST}/jp/ [L,R=301]
## No language
RewriteCond %{HTTP:Accept-Language} ^.*(ja|de|en).*$ [NC]
RewriteRule ^/$ https://%{HTTP_HOST}/en/ [L,R=301]
使用此配置,我可以根据浏览器语言将访问者重定向到正确的子文件夹,并且如果未设置接受的语言,访问者将看到https://my-site/en/
。
但是:如果我要登录,我会得到一些Cookie错误。
第二个问题也取决于我的VHost-Config: 我的子域也将使用这些规则进行重定向... 这意味着:blog.my-site.com将重定向到blog.my-site.com/BROWSER_Language,这很糟糕。 是否可以为所有子域停用我的重定向
也许这里有人可以帮助我吗?
非常感谢。