将 subdomain.domain.com 重写为 domain.com/subdomain 而不重定向
Rewrite subdomain.domain.com to domain.com/subdomain without redirect
我已经阅读了大量的 Whosebugs,但我似乎遗漏了一些东西。
我有一个 PHP 申请 运行 正在 https://subdomain.example.com/page/x but for SEO reasons I want people/bots to see https://example.com/subdomain/page/x。
我可以使用以下方法重写 URL:
RewriteEngine on
RewriteCond %{HTTP_HOST} subdomain.example.com
RewriteRule ^(.*)$ https://example.com/subdomain/ [L,NC,QSA]
此重写结果为:https://example.com/subdomain/page/x
,但我一直收到 404 错误,因为“主”域当然不知道路径 /subdomain/page/x
。
我想要的是 URL https://example.com/subdomain/page/x
但是 运行 它在后台 https://subdomain.example.com/
因为这是 PHP应用程序是 运行ning.
这可能吗?我应该怎么做?
没有充分的 SEO 理由不使用子域。请参阅 Do subdomains help/hurt SEO? 我建议大多数时候使用子目录,但在需要时使用子域。
当您的内容托管在位于单独托管位置的单独服务器上时,子域是有保证的。虽然在技术上可以从单独的服务器的子目录中提供内容,但这会带来一系列 SEO 问题:
- 会很慢。
- 会引入重复内容
从技术角度来看,您需要在 example.com
网络服务器上使用反向代理从 subdomain.example.com
获取 /subdomain/
子目录的内容。 example.com
的 .htaccess
文件中的代码类似于:
RewriteEngine on
RewriteRule ^subdomain/(.*)$ https://subdomain.example.com/ [P]
[P]
标志表示“反向代理”,这将使服务器从远程子域获取内容。这必然会使用户的速度变慢。这么多,以至于SEO使用子域会更好。
为此,您还需要保留子域并 运行宁和服务内容供主服务器获取。这会导致重复的内容。您可以通过实施指向子目录的规范标签来解决此问题。
这需要几个可用的 Apache 模块。在我基于 Debian 的系统上,我需要 运行 sudo a2enmod ssl proxy rewrite proxy_connect proxy_http
和 sudo service apache2 reload
。我还必须在我的 <VirtualHost>
指令中为我想使用它的网站添加 SSLProxyEngine on
。
我已经阅读了大量的 Whosebugs,但我似乎遗漏了一些东西。
我有一个 PHP 申请 运行 正在 https://subdomain.example.com/page/x but for SEO reasons I want people/bots to see https://example.com/subdomain/page/x。
我可以使用以下方法重写 URL:
RewriteEngine on
RewriteCond %{HTTP_HOST} subdomain.example.com
RewriteRule ^(.*)$ https://example.com/subdomain/ [L,NC,QSA]
此重写结果为:https://example.com/subdomain/page/x
,但我一直收到 404 错误,因为“主”域当然不知道路径 /subdomain/page/x
。
我想要的是 URL https://example.com/subdomain/page/x
但是 运行 它在后台 https://subdomain.example.com/
因为这是 PHP应用程序是 运行ning.
这可能吗?我应该怎么做?
没有充分的 SEO 理由不使用子域。请参阅 Do subdomains help/hurt SEO? 我建议大多数时候使用子目录,但在需要时使用子域。
当您的内容托管在位于单独托管位置的单独服务器上时,子域是有保证的。虽然在技术上可以从单独的服务器的子目录中提供内容,但这会带来一系列 SEO 问题:
- 会很慢。
- 会引入重复内容
从技术角度来看,您需要在 example.com
网络服务器上使用反向代理从 subdomain.example.com
获取 /subdomain/
子目录的内容。 example.com
的 .htaccess
文件中的代码类似于:
RewriteEngine on
RewriteRule ^subdomain/(.*)$ https://subdomain.example.com/ [P]
[P]
标志表示“反向代理”,这将使服务器从远程子域获取内容。这必然会使用户的速度变慢。这么多,以至于SEO使用子域会更好。
为此,您还需要保留子域并 运行宁和服务内容供主服务器获取。这会导致重复的内容。您可以通过实施指向子目录的规范标签来解决此问题。
这需要几个可用的 Apache 模块。在我基于 Debian 的系统上,我需要 运行 sudo a2enmod ssl proxy rewrite proxy_connect proxy_http
和 sudo service apache2 reload
。我还必须在我的 <VirtualHost>
指令中为我想使用它的网站添加 SSLProxyEngine on
。