剥离 www. from 域适用于主站点,但不适用于子域

发布于 2024-10-19 04:59:17 字数 570 浏览 1 评论 0原文

我目前的 .htaccess 文件如下:

ErrorDocument 404 /404.php
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php 
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]

当我访问我的主站点:www.site.com 时,www.被剥离,因为它应该是,一切工作正常。

当我以正确的格式访问子域(http://sub.site.com)时,一切正常。

当用户输入 www 时就会出现问题。作为子域的一部分,因此: http://www.sub.site.com 不会删除 www。而是重定向到媒体寺庙托管的“子域不存在”页面(顺便说一句,非常烦人)。

有什么建议吗?

I currently have my .htaccess file as the following:

ErrorDocument 404 /404.php
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php 
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]

when I visit my primary site at: www.site.com, the www. is stripped as it should be and all works fine.

When I visit a subdomain in proper format (http://sub.site.com) everythign works fine.

The issue comes when a user would enter www. as part of a subdomain so:
http://www.sub.site.com does not strip the www. and instead redirects to the Media temple hosted "sub-domain does not exist" page (INCREDIBLY ANNOYING by the way).

Any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

那一片橙海, 2024-10-26 04:59:17

更改这些行:

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]

至:

RewriteCond %{HTTP_HOST} ^www\.(.+?)\.([^.]+)$ [NC]
RewriteRule ^(.*)$ http://%1.%2$1 [R=301,NC,L]

Change these lines:

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]

To:

RewriteCond %{HTTP_HOST} ^www\.(.+?)\.([^.]+)$ [NC]
RewriteRule ^(.*)$ http://%1.%2$1 [R=301,NC,L]
一刻暧昧 2024-10-26 04:59:17

我相信我必须“欺骗”系统,但找到了一种工作方法:

我首先必须在我的子域中创建一个 vhost.conf 文件:

服务器别名 www.subdomain.site.com

重置 Plesk 和我的 Apache 服务器后,我还在我的子域中添加了通配符 DNS 记录,如下所示:

*.subdomain.site.com。具有适当 IP 地址的记录

这似乎暂时解决了我的问题,但仍然无法弄清楚为什么前者不起作用。

I believe I had to "trick" the system but found a working method:

I first had to create a vhost.conf file within my subdomain with:

ServerAlias www.subdomain.site.com

After resetting Plesk and my Apache server, I also added a wildcard DNS record to my subdomain as:

*.subdomain.site.com. A record with IP address appropriately

This seems to have resolved my issue for now though still can't figure out why the former did not work.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文