【问题标题】:Mod ReWrite Catch-All SubdomainMod ReWrite Catch-All 子域
【发布时间】:2009-06-19 12:51:09
【问题描述】:

基本上我希望 *.domain.com 拉起 domain.com/*/ (而不是重定向)。

我进入 cPanel 的子域部分并为此域设置了通配符。它似乎正在正确解析,即 *.domain.com 正在调出 domain.com。

我现在在 public_html 目录中创建了一个 htaccess 文件,其中包含:

Options +FollowSymLinks
Options +Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteRule (.*) %2/$1 [L]

我得到的错误是“500 Internal Server Error”,有什么想法吗?

【问题讨论】:

  • 我不会投票结束,但您可能会在 serverfault.com 上得到更好的答案
  • 错误日志中有相关信息吗?

标签: .htaccess mod-rewrite


【解决方案1】:

试试这个规则:

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.example\.com$ [NC]
RewriteCond %2%{REQUEST_URI} !^([^/]+)/\2
RewriteRule (.*) %2/$1 [L]

附加的RewriteCond %2%{REQUEST_URI} !^([^/]+)/\2 应该避免L 标志引起的无限循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2011-07-13
    • 2013-10-25
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多