多个重写网址(domain.tld / blogs.php?user = username& post = postname TO username.domain.tld / posts / postname)

时间:2013-04-28 05:59:11

标签: .htaccess mod-rewrite url-rewriting rewrite subdomain

我如何从这个

重写网址

使用domain.tld / blogs.php用户=用户名和安培;交= postname

到这一个:

username.domain.tld /帖/ postname

1 个答案:

答案 0 :(得分:0)

  1. 确保您内容中的所有链接都显示如下:username.domain.tld/posts/postname

  2. 在DNS中创建通配符CNAME,以便任何子域都指向托管domain.tld的服务器,并且它们共享相同的文档根目录。

  3. 将这些规则添加到文档根目录中的htaccess文件中:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^(www\.) [NC]
    RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.tld$ [NC]
    RewriteRule ^posts/([^/]+)/?$ /blogs.php?username=%1&post=$1 [L]
    
    RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /blogs\.php\?user=([^&]+)&post=([^\ ]+))
    RewriteRule ^ http://%2.domain.tld/posts/%2 [L,R=301]