Php .htaccess动态子域
我已经为这件事烦恼了一段时间了。我想知道是否有一种方法可以用.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应该与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,我已经预感到了这一点 我遇到的问题是,我有一个
$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]