.htaccess - 将子域重定向到文件夹

时间:2013-10-29 16:22:56

标签: php apache .htaccess redirect subdomain

这个问题可能已被问过一千多次了,但是我已经尝试了这么多剧本,并且搜索了很长时间而没有找到任何内容,我想,让我们问一下。

我只是希望将m.daltonempire.nl重定向到daltonempire.nl/m/,而不会让用户看到网址更改。

因此,如果请求m.daltonempire.nl/hello.php,我希望用户继续看到此网址,而给定的网页实际上是daltonempire.nl/m/hello.php

注意:我不想www.,所以只需http://m.daltonempire.nl

提前致谢,

Isaiah诉Hunen

3 个答案:

答案 0 :(得分:4)

试试这个例子:

RewriteCond %{HTTP_HOST} ^([^/.]+)\.example\.com$ 
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteRule (.+)$ "http://example.com/%1" [L,P]

任何请求http://test.example.com都将映射到http://example.com/test/...

尝试使用Google搜索dynamic subdomain with php and htaccess来获得更好的搜索结果。

答案 1 :(得分:4)

将此添加到您的网络根.htaccess目录

中的/
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} ^m\.daltonempire\.nl$ [NC]
RewriteCond %{REQUEST_URI} !^/m(/|$) [NC]
RewriteCond %{REQUEST_FILENAME} !-d # not a dir
RewriteCond %{REQUEST_FILENAME} !-f # not a file
RewriteRule ^(.*)$ m/$1 [L]

%{REQUEST_FILENAME}条件可让您访问/exists.php,而不会将其重写为/m/exists.php。如果要重写,请删除这两个,即使这可能会覆盖现有文件和目录。

答案 2 :(得分:2)

我在下面设置了子域的CNAME:

blog.mydomain.com

安装在根目录下的文件夹/blog/中的wordpress。

以前我需要使用这个url来调用wordpress:

http://blog.mydomain.com/blog/

这很难看。我尝试了很多代码来重定向:

http://blog.mydomain.com/

到文件夹,所以我可以用它作为我的wordpress网址。

最后我设置了.htaccess设置:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^blog\.mydomain\.com$
    RewriteCond %{REQUEST_URI} !^/blog/
    RewriteRule (.*) /blog/$1

我还在文件夹http://forum.mydomain.com中安装了CNAME其他子域/forum/mybb/到mybb,因此.htaccess需要在每个RewriteRule代码上放置[L],如下所示。

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^forum\.tophyips\.info$
    RewriteCond %{REQUEST_URI} !^/forum/mybb/
    RewriteRule (.*) /forum/mybb/$1 [L]

    RewriteCond %{HTTP_HOST} ^blog\.tophyips\.info$
    RewriteCond %{REQUEST_URI} !^/blog/
    RewriteRule (.*) /blog/$1 [L]

如果您想使用该代码,请不要忘记在应用程序配置文件中设置网站URL和cookie路径,然后按照设置进行重定向工作。