首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xxx.domain.com重定向到../users文件夹的.htaccess文件中的动态子域处理

xxx.domain.com重定向到../users文件夹的.htaccess文件中的动态子域处理
EN

Stack Overflow用户
提问于 2019-08-13 08:40:01
回答 1查看 152关注 0票数 0

这是我所在的地方我对CodeIgniter和general LAMP很在行,但对.htaccess不是很在行。我在用户创建设置中设置动态子域的PHP处理。我认为mydomain.com可以创建和访问user.mycomain.com,并为其提供页面。

设计是这样的。在Apache Server的文档根目录中,有一个"Users“文件夹,其中包含每个用户。

因此,理想情况下,我希望用户创建他们的帐户,然后我的PHP控制器运行,然后电源!他们的(用户).mydomain.com页面被创建。

我更改了名称服务器,以便将*.mydomain.com解析为我的静态IP。这里没有问题。

问题出在.htaccess文件中。我在StackOverflow中尝试了许多建议,但我被两件事卡住了。

这就是我到目前为止尝试过的方法,但我被卡住了。

为了澄清--

如果我转到我的文档根目录并创建了一个文件夹xxx。然后创建一个index.php文件,上面写着"it works“。我应该能够转到xxx.mydomain.com,得到一个简单的页面,上面写着"it works“

文件夹为:(Docroot)/Users/ xxx.mydomain.com域为:xxx子域为:xxx

因此,我在nushell中尝试做的是获得一个条目: xxx.mydomain.com来为位于(docroot)/Users/xxx的网站提供服务

对于大多数在线建议,它会将/Users/xxx附加到xxx.mydomain.com后面,这样url就是xxx.mydomain.com/Users.xxx,而它只需要是xxx.mydomain.com

但是浏览器中显示的网址应该始终保持xxx.mydomain.com,而不是xxx.mydomain.com/Users/subdomain (不管xxx是什么,字面上都是子域)

目前,我要么得到:

URL为xxx.mydomain.com/Users/subdomain (字面上显示为subdomain)或500服务器错误

我在不同的文章中尝试了几种不同的建议。这里有一个这样的建议。

代码语言:javascript
复制
RewriteEngine On

RewriteCond %{HTTP_HOST} ^([a-z0-9/-]+)\.mydomain\.com$
RewriteCond ${REQUEST_URI} ^/Users/$1/

#Below Required for CodeIgniter

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L] 

我想要完成的不是将/Users/xxx附加到URL。我希望重定向到基于我的(文档根目录)的/Users/xxx文件夹,同时保持xxx.mydomain.com作为URL。

非常感谢您的任何建议

EN

回答 1

Stack Overflow用户

发布于 2019-08-13 09:44:17

由于捕获发生在RewriteCond中,而不是RewriteRule中,因此您应该使用%1,而不是$1。从documentation

除了纯文本之外,替换字符串还可以包括

到最后匹配的

  1. back-references pattern
  2. back-references的RewriteCond pattern
  3. ...

  1. back-references ($N)到RewriteRule RewriteCond (%N)

您还有两个没有RewriteRuleRewriteCond,这意味着要应用最后一个Rule,所有四个条件都必须匹配。

尝试以下操作:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^([a-z0-9-]+)\.mydomain\.com$
RewriteCond %{REQUEST_URI} !^/Users   # Stop the rewrite if the URL already contains /User
RewriteRule (.*) /Users/%1/$1 [L]

停止条件是必要的,因为每当URI由于重写而发生更改时,apache都会再次重新计算所有RewriteRules。你可以在here上看到这个过程是如何工作的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57469812

复制
相关文章

相似问题

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