Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php .htaccess动态子域_Php_Apache_.htaccess_Mod Rewrite_Subdomain - Fatal编程技术网

Php .htaccess动态子域

Php .htaccess动态子域,php,apache,.htaccess,mod-rewrite,subdomain,Php,Apache,.htaccess,Mod Rewrite,Subdomain,我已经为这件事烦恼了一段时间了。我想知道是否有一种方法可以用.htaccess创建动态子域?我现在处于一个沙箱环境中,但我希望这样做: awebsite.co.uk->直接转到index.php *.awebsite.co.uk->直接转到init.php 到目前为止,我已经设法预感到这一点,并完成这一点,然而,我面临着一个真正的问题,当涉及到参数 *.adomain.co.uk/page抛出404或500。通过将自定义404设置为init.php,我已经预感到了这一点 我遇到的问题是,我有一个

我已经为这件事烦恼了一段时间了。我想知道是否有一种方法可以用.htaccess创建动态子域?我现在处于一个沙箱环境中,但我希望这样做:

awebsite.co.uk->直接转到index.php *.awebsite.co.uk->直接转到init.php

到目前为止,我已经设法预感到这一点,并完成这一点,然而,我面临着一个真正的问题,当涉及到参数

*.adomain.co.uk/page抛出404或500。通过将自定义404设置为init.php,我已经预感到了这一点

我遇到的问题是,我有一个规则,从url中隐藏.php,这样adomain.co.uk/apage就会显示一个page.php,但是当我试图完成上述操作时,这就搞砸了。有人能给我指一下这里的正确方向吗?我有一个通配符a记录等,但我不能与我的主机提供商设置服务器别名

非常感谢

更新: .htaccess(当前)

使用PHP进行Hanlding应该与

$splitDomain = explode('.', $_SERVER['SERVER_NAME']);
// TODO: remove if not sandbox
$ReqPage = str_replace('/sandbox/', '', $_SERVER['REQUEST_URI']);
//$ReqPage = str_replace('/', '', $_SERVER['REQUEST_URI']);

默认行为是重定向到index.php,因此您只需要捕获非www子域

那么:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$   [NC]
RewriteCond %{HTTP_HOST} !^www\.example\.com$  [NC]
RewriteRule ^ http://www.example.com/init.php  [L,R]
或:


第一个将重定向到init.php(您要求的),第二个将调用init.php而不重定向(您的意思)。

这有助于查看您尝试了什么。你可以这样做:谢谢劳伦斯。不幸的是,我已经发布了这个“即将发布”,所以我无法访问源代码。然而,它会给任何人很多思考,在大多数情况下,我不得不删除所有由于尝试了这么多,它不工作。我现在基本上是从头开始做这件事。谢谢你的链接,我已经看过了,这只是稍微涉及到我期待做什么。你看,我需要维护htaccess删除php并保留友好的url。我从字面上说,我想保持我的系统(友好的URL),但虚拟/动态子域只能用php处理。因此,htaccess只是将所有内容发送到一个具有友好URL的文件中,我可以使用phpUpdated和current.htaccess来管理它。不幸的是,这只是重定向到init.php页面,这正是您所要求的!更新了我认为你的意思。非常感谢。我的主,我已经为此自杀了。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$   [NC]
RewriteCond %{HTTP_HOST} !^www\.example\.com$  [NC]
RewriteRule ^ http://www.example.com/init.php  [L,R]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com$   [NC]
RewriteCond %{HTTP_HOST} !^www\.example\.com$  [NC]
RewriteRule ^ init.php  [L]