【问题标题】:How can i get my htaccess to work (subdomains)?我怎样才能让我的 htaccess 工作(子域)?
【发布时间】:2011-02-28 01:33:54
【问题描述】:

我在这些事情上有点菜鸟,但我正在尝试使用 .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
----index.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 但不在我的地址栏中。抱歉,文本块并感谢您的帮助。

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    这适用于 Apache 端:

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

    但您是 wiki 软件可能会自行决定重定向/网址。

    【讨论】:

    • 嗯,是的,这是有道理的,但我仍然认为它不适合我。当我在 wiki.khpedia.com 上旅行时,我收到一个内部服务器错误。但是,当我前往 test.khpedia.com/rewrite.php 时,我可以看到 root/test/rewrite.php。但由于某种原因,我也可以前往 test.khpedia.com/test/rewrite.php 并查看相同的文件。不知道这是否重要,但谢谢。
    • 将 + 更改为 * 以解决“wiki.khpedia.com”失败的问题。我们可以尝试一个精心设计的 rewritecond-fest (http_host, request_filename) 来尝试重定向到“非目录”子域 (wiki.a.a/wiki/index.php => wiki.a.a/index.php),但我认为你只做一个更容易在子目录本身的 .htaccess 中检查。
    【解决方案2】:
    RewriteCond ^(.*)$ /wiki/$1 [L]
    

    我对子域在您的问题中的位置感到困惑。您能否举例说明您希望在浏览器中访问的 URL 以及它们在服务器上应指向的内容?

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

    【讨论】:

      猜你喜欢
      • 2020-10-24
      • 2023-03-16
      • 1970-01-01
      • 2021-01-22
      • 2011-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      相关资源
      最近更新 更多