【问题标题】:Clean URLs mod_rewrite & wildcard subdomains清理 URLs mod_rewrite 和通配符子域
【发布时间】:2013-10-03 13:18:11
【问题描述】:

我得到了这个网址

http://domain.com/blogs/directory-param

有了这条规则

RewriteBase /博客/目录/ RewriteRule ^/blogs/directory-([A-Za-z0-9-]+)$ /blogs/directory/index.php?cat=$1 [L]

所以我得到 /blogs/directory/index.php?cat=param 现在我的问题如下:

我使用通配符子域,因此每个 *.domain.com 都映射到 domain.com/blogs/ 例如 soeren.domain.com 映射到 domain.com/blogs 等等...

我现在的问题是我想要一个指向 domain.com/blogs/directory?index.php?cat=param 的 soeren.domain.com/directory-param 规则

你有什么想法吗?

【问题讨论】:

  • 你的问题对我来说有点不清楚......你到底想知道什么,什么不起作用?你想摆脱子域吗?
  • 嗨 Archimedix 我刚刚编辑了上面的问题,希望现在更清楚一点...

标签: php mod-rewrite subdomain


【解决方案1】:

好吧,要删除子域部分,请尝试外部重定向:

RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$
RewriteRule (.*) http://domain.com$1 [R,L,QSA]

这是您现有规则的补充和之前。

【讨论】:

  • 哦,我不想删除子域部分。我在我的服务器上安装了通配符子域。所以域应该仍然是:subdomain.domain.com/directory-param
  • 我正在寻找这样的东西:soeren.tumblr.com/post/35400861477 在我的情况下为soeren.tumblr.com/post-35400861477
  • 我使用通配符 dns,所以所有 *.domain.com 都映射到 domain.com/blogs/
  • 这条从 sub.domain.com 映射到 domain.com 的规则是什么?只需删除那个。
  • 没有规定我使用通配符 dns 子域
【解决方案2】:

这最终对我有用:

RewriteCond %{HTTP_HOST} ^[^.]+\.domain\.com$  
RewriteCond %{REQUEST_URI} !^/directory(/|$)  
RewriteRule ^blogs/directory-([A-Za-z0-9-]+)$ /directory/index.php?cat=$1 [L,QSA]

@Archimedix:非常感谢!

【讨论】:

    猜你喜欢
    • 2010-09-18
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 2014-06-12
    • 1970-01-01
    相关资源
    最近更新 更多