.htaccess index.php处理的所有子域和URL

.htaccess index.php处理的所有子域和URL,.htaccess,rewrite,.htaccess,Rewrite,我正在尝试做下面的重写,但没有成功 无论输入什么URL或子域,它都应该由index.php进行“处理” 假设我去example.domain.com URL将以相同的方式输入,但内容是index.php中的内容 URL或子域是否确实存在并不重要。 任何示例都是如此: other.domain.com/something 对于用户来说应该保持不变,但是index.php应该显示什么。您可以在.htaccess中使用以下行: RewriteEngine on RewriteRule ^([^/\.

我正在尝试做下面的重写,但没有成功

无论输入什么URL或子域,它都应该由
index.php
进行“处理”

假设我去
example.domain.com

URL将以相同的方式输入,但内容是index.php中的内容

URL或子域是否确实存在并不重要。

任何示例都是如此:

other.domain.com/something

对于用户来说应该保持不变,但是
index.php
应该显示什么。

您可以在.htaccess中使用以下行:

RewriteEngine on
RewriteRule ^([^/\.]+)/?$ index.php [L]

您可以在主域(
site.com
)根目录下的一个.htaccess文件中尝试此操作:

Options+FollowSymlinks-多视图
重新启动发动机
重写基/
重写cond%{REQUEST_URI}!索引\.php[NC]
重写规则。*/index.php?[L]
#如果上述规则无法按预期工作,请改用此规则:
#重写规则。*http://site.com/index.php? [L]
这应该适用于公共html文件夹中托管的通配符和附加子域

规则集满足问题中的所有要求:

  • “无论输入什么URL或子域”
    将所有内容重定向到
    http://site.com/index.php

  • “它应该始终由index.php处理”
    。因此,
    index.php
    必须存在于某个地方,对于这个答案,它位于
    http://site.com

  • “但是index.php应该显示什么”
    。非常令人困惑,但有一条评论很清楚:将传入的URL保留在地址栏中。如果不是这样,请将
    [L]
    替换为
    [R=301,L]

  • 不要向替换URL中的脚本(index.php)传递任何内容,因为OP没有提到它


这是行不通的,因为我试图完成的工作与子域是否存在无关……index.php文件存在,它位于根目录中(site.com/index.php)。我希望输入任何url,无论是哪个子域,我希望url保持原样,但显示index.php的内容。更清楚吗?这些子域和附加域是否在公共html文件夹中?@faa不,如果可能的话,我希望它能够处理任何键入的随机子域。好的,我很确定没有解释更正可能是我的错,但这不是我需要的。我需要的是,无论您键入什么url,您都将继续看到确切的url,但您将显示index.php的内容。这样更好吗?请要求任何澄清,谢谢你的帮助!这确实是我答案中的规则集所做的:
将传入URL保留在地址栏中。
是的,但是,如果我没有像你说的那样弄错,子域实际上必须存在,我必须创建它们作为加载项。我能不能让它对一个不存在的域名起作用?这些是我提到的
通配符
子域,它们不必在公共html文件夹中。这只适用于附加子域。已更正,将
替换为
。但是试一下,使用子域是相当棘手的,因为它们在服务器中毫无意义。对不起,但是我不明白我应该怎么做才能让它工作,我只是查找了通配符子域,然后转到我的cpanel并创建了一个子域
*
,但我不确定这是我应该做的,因为这不是预期的结果。