2010-06-05 97 views
0

我很喜欢这些东西的菜鸟,但我试图用.htaccess制作一个简单的虚拟子域。我有通配符启用和大量挖掘后,这是我想出来的:我怎样才能让我的htaccess工作(子域名)?

rewriteEngine On 
rewriteCond %{HTTP_HOST} !^$ 
rewriteCond %{HTTP_HOST} !^(www\.)?khpedia\.com$ [NC] 
rewriteCond %{HTTP_HOST}<->%{REQUEST_URI} ^(www\.)?([^.]+).*<->/([^/]+) [NC] 
rewriteCond %2<->%3 !^(.*)<->\1$ [NC] 
rewriteRule ^(.+) /%2/$1 [L] 

我的目录设置为

-root
--wiki
----指数.php
- 测试

现在,当我前往wiki.khpedia.com时,我找不到页面。当我前往wiki.khpedia.com/index.php时,它会前往wiki.khpedia.com/wiki/index.php。我也能以某种方式访问​​wiki.khpedia.com/test。如果它看起来不是很明显,我希望能够访问wiki.khpedia.com/index.php并查看wiki.khpedia.com/wiki/index.php,但不能在我的地址栏中找到。对不起,文本块,并感谢您的帮助。

回答

0

这适用于Apache的一面:

RewriteCond %{HTTP_HOST} !^www\.khpedia\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.+).khpedia\.com$ [NC] 
RewriteRule ^(.*) /%1/$1 [L,QSA] 

但你wiki软件就可以弥补它自己的主意,重定向/网址。

+0

嗯是的,这是有道理的,但我仍然不认为它是为我工作。 当我旅行wiki.khpedia.com时,出现内部服务器错误。但是,当我前往test.khpedia.com/rewrite.php时,可以看到root/test/rewrite.php。但由于某种原因,我也可以前往test.khpedia.com/test/rewrite.php并查看相同的文件。不知道这是否重要,但谢谢。 – Bryan792 2010-06-05 03:02:12

+0

将a +更改为a *,应该注意“http://wiki.khpedia.com/”失败。我们可以尝试一个精心设计的rewritecond-fest(http_host,request_filename)来尝试重定向到'non-dir'子域(http://wiki.aa/wiki/index.php => http://wiki.aa /index.php),但我认为只要在子目录本身的.htaccess中检查它就简单多了。 – Wrikken 2010-06-05 18:42:08

0
RewriteCond ^(.*)$ /wiki/$1 [L] 

我很疑惑哪些子域出现在您的问题中。您能举出一些您想要在浏览器中访问的URL的示例,以及它们应该指向服务器的内容吗?

编辑|啊,我现在看到,Wrikken的答案正确处理子域:)

相关问题