.htaccess index.php处理的所有子域和URL
我正在尝试做下面的重写,但没有成功 无论输入什么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 ^([^/\.
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
。非常令人困惑,但有一条评论很清楚:将传入的URL保留在地址栏中。如果不是这样,请将“但是index.php应该显示什么”
替换为[L]
[R=301,L]
- 不要向替换URL中的脚本(index.php)传递任何内容,因为OP没有提到它
将传入URL保留在地址栏中。
是的,但是,如果我没有像你说的那样弄错,子域实际上必须存在,我必须创建它们作为加载项。我能不能让它对一个不存在的域名起作用?这些是我提到的通配符子域,它们不必在公共html文件夹中。这只适用于附加子域。已更正,将或
替换为和
。但是试一下,使用子域是相当棘手的,因为它们在服务器中毫无意义。对不起,但是我不明白我应该怎么做才能让它工作,我只是查找了通配符子域,然后转到我的cpanel并创建了一个子域*
,但我不确定这是我应该做的,因为这不是预期的结果。