【问题标题】:Redirect every subdomain to single directory将每个子域重定向到单个目录
【发布时间】:2019-06-07 12:52:33
【问题描述】:

这和.htaccess rewrite subdomain to directory差不多

此解决方案有效:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^([^.]+)\.jcubic\.atthost24\.pl$
RewriteRule ^((?!subdomains/).*)$ /subdomains/%1/$1 [L,NC,QSA]

但我想转发但没有 /subdomains 目录所以

http://img.jcubic.atthost24.pl/.* 应为 http://jcubic.atthost24.pl/img/.*

这可能吗?这不起作用

RewriteRule ^((?!%1/).*)$ /%1/$1 [L,NC,QSA]

我不确定我有什么版本的 Apache。

【问题讨论】:

    标签: apache .htaccess subdomain


    【解决方案1】:

    这可能就是你要找的:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^img\.jcubic\.atthost24\.pl$
    RewriteRule ^/?(.*)/?$ /img/$1 [END,QSA]
    

    但是请注意,您应该尝试将此类规则放在 http 服务器的主机配置中,而不是使用动态配置文件(“.htaccess”)。

    不过,上述规则适用于这两种情况。

    如果您收到内部错误(http 状态 500),请检查错误日志文件。如果它抱怨未知的END 标志,那么您可能运行的是非常旧版本的apache http 服务器。在这种情况下,试试L 标志,它应该在这里工作,尽管这实际上取决于具体情况。

    更新,根据您的评论:

    如果要以动态方式处理主机名“img”,您可以这样做:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^([^.]+)\.jcubic\.atthost24\.pl$
    RewriteRule ^/?(.*)/?$ /%1/$1 [END,QSA]
    

    也许您想检查该文件夹是否实际存在于 http 服务器的物理文件系统中。

    【讨论】:

    • 这适用于单域。如果我有 20 个呢?
    • 我只是用不同的域再次检查,问题是javascript.jcubic.pl 不起作用它看不到 index.html 文件,但如果我添加一个文件它工作正常.你能解释一下为什么以及是否有办法加载默认文件。
    • 如果您在此处定义“域”的实际含义,我只能回答您的评论。不幸的是,这些天来,这个词被用于各种各样的事情......
    • 关于索引文档...不确定,该文件夹中是否有真正的“index.html”文件?然后我看不出这种行为的原因。如果您实际上的意思是根本没有文件夹,但您仍然希望该规则起作用,那是另一回事。然后,您确实想要将主机名映射到您在问题中询问的文件夹。所以,请更准确一些,以便我能提供帮助。
    • javascript 是一个文件夹,它有真正的 index.html,这是带有静态文件的 Jekyll 站点,而 javascript 是一个标签(我错误地将其上传到主目录而不是 /tag)。您可以打开jcubic.pl/javascript,但对于子域我需要指定一个文件。
    猜你喜欢
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 2011-06-28
    相关资源
    最近更新 更多