【问题标题】:Rewrite subdomain exactly like the main website完全像主网站一样重写子域
【发布时间】:2013-09-22 01:31:27
【问题描述】:

我目前正在开发一个博客门户,我正在尝试在这里实现一个特定的目标。

这是我的 .htaccess 代码:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.[NC]
RewriteCond %{HTTP_HOST} ^(.+?)\.MyDomain.com$ [NC]
RewriteRule ^$ blogdisplay.php?page=%1 [L,QSA]
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9-]+)/$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)$ index.php?page=$1&page2=$2
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/$ index.php?page=$1&page2=$2
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)$ index.php?    page=$1&page2=$2&page3=$3
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/$ index.php?page=$1&page2=$2&page3=$3

当一个人试图访问 SOMETHING.mydomain.com 时,htaccess 会将其重写为 blogdisplay.php?page=BLOGNAME。正如计划。现在,问题是我希望它的行为与主网站完全一样,并将 SOMETHING.mydomain.com/page 重写为 blogdisplay.php?page=BLOGNAME?page2=page。

有没有办法让子域使用blogdisplay.php而不是index.php,但在其他方面与“主网站”的子页面完全一样?

【问题讨论】:

    标签: regex .htaccess mod-rewrite subdomain


    【解决方案1】:

    用这个替换你的代码:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} !^www.[NC]
    RewriteCond %{HTTP_HOST} ^(.+?)\.MyDomain.com$ [NC]
    RewriteRule ^$ blogdisplay.php?page=%1 [L,QSA]
    
    ## If the request is for a valid file
    RewriteCond %{REQUEST_FILENAME} -f
    ## don't do anything
    RewriteRule ^ - [L]
    
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(.+?)\.MyDomain\.com$ [NC]
    RewriteRule ^([a-z0-9-]+)/?$ blogdisplay.php?page=%1&page2=$1 [L,QSA]
    
    RewriteRule ^([a-z0-9-]+)/?$ index.php?page=$1 [L,NC]
    RewriteRule ^([a-z0-9-]+)/([a-zA-Z0-9-]+)/?$ index.php?page=$1&page2=$2 [L,NC]
    RewriteRule ^([a-z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/?$ index.php?page=$1&page2=$2&page3=$3 [L,NC]
    

    【讨论】:

    • 哦,似乎有一个小问题......当我试图到达 example.mydomain.com/page 它工作正常,但当试图到达 example.mydomain.com 它重写为只是 mydomain.com。
    • 不,现在又回到了原来的问题上......但我做了一点调整并添加了:RewriteCond %{HTTP_HOST} !^www.[NC] RewriteCond %{HTTP_HOST} ^(.+ ?)\.loglime.com$ [NC] RewriteRule ^$ blogdisplay.php?page=%1 [L,QSA](这个有效)
    • 是的,这肯定会起作用,我只是想避免额外的规则:P
    猜你喜欢
    • 2016-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 2014-02-01
    • 1970-01-01
    • 2021-04-16
    相关资源
    最近更新 更多