首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将子域重定向到index.php,并使子域url在地址栏中可见?

如何将子域重定向到index.php,并使子域url在地址栏中可见?
EN

Stack Overflow用户
提问于 2012-07-12 12:34:41
回答 1查看 2.7K关注 0票数 1

我有一个网站与多个域名,如sub1.mydomain.orgsub2.mydomain.org

目前,我有这个htaccess代码,它将所有这些子域重定向到index.php,并将子域名作为变量传递:

代码语言:javascript
复制
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^(.*)$ http://mydomain.org/index.php?subdomain=$1 [QSA,L]

一切正常,除了URL地址改为mydomain.org/index.php?subdomain=(sub accessed)

我想保留显示的子域名。我该怎么做呢?

我的共享主机站点的结构如下

代码语言:javascript
复制
/username/public_html/addon-domain/index.php
/username/public_html/addon-domain/subdomains
/username/public_html/addon-domain/subdomains/sub1
/username/public_html/addon-domain/subdomains/sub2...

上述htaccess文件位于subdomains目录中。

编辑:-以上问题已解决,但有新情况出现

我的HTACCESS代码的问题是我使用了绝对路径(http://www.mydomain...),这将总是导致显示新的url,无论R与否。相反,您应该使用相对路径。然而,仍然存在一个令人困惑的问题。下面是新的代码:

代码语言:javascript
复制
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain\.org$
RewriteRule ^(.*)$ (can't use relative here) [QSA,L]
RewriteRule ^(.*)$ \.\./index.php?subdomain=$1 [QSA,L]

第一个条件/规则将检查我的站点是否从子域访问,如sub.mydomain.org。如果为真,则L将停止运行第二个重写器。第二个重写规则使用了HTACCESS文件的相对路径,HTACCESS文件位于/subdomain/文件夹中,如果我从mydomain.org/subdomain/anysub进入我的站点,所有这些都可以正常工作。

但是,如果以anysub.domain.org输入站点,则相对路径不起作用。它将触发两个错误:“内部服务器错误。服务器遇到内部错误或配置错误,无法完成您的请求。”和“此外,在尝试使用ErrorDocument处理请求时,遇到了500内部服务器错误。”

有人会碰巧知道为什么吗?相对路径不应该总是与HTACCESS文件的位置相关吗?

编辑:我刚刚知道mydomain/subdomain/anysub/可以工作,但是mydomain/subdomain/anysub(不以/结尾)将再次触发显示的get var。我开始觉得这太复杂了,永远得不到答案

EN

回答 1

Stack Overflow用户

发布于 2012-07-12 13:06:12

尝试将P标志添加到RewriteRule的括号中

代码语言:javascript
复制
RewriteRule ^(.*)$ http://mydomain.org/index.php?subdomain=$1 [P,QSA,L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11445061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档