【问题标题】:New to .htaccess and RewriteRule.htaccess 和 RewriteRule 的新功能
【发布时间】:2013-04-23 00:43:01
【问题描述】:

我正在创建一个网站,用户可以在其中创建包含文件、文件夹等的子域。 这些网站进入一个名为网站的文件夹,因此它将是

site.com/websites/subdomain.site.com

我只需要在RewriteRule 的末尾加上{REQUEST_URI} 以便用户可以转到 例如,subdomain.site.com/images/etc/img.jpg 和它们的 子域 仍将显示为 subdomain.site.com/images/etc/img.jpg,但内容实际上将位于 site.com/websites/subdomain.site.com/images/etc/img.jpg

很抱歉创建了多个问题,文档对我来说很难,我对此完全陌生,但我正在尝试......请帮助解决这个问题:)

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/websites/
RewriteCond %{HTTP_HOST} (.*)$ [NC]
RewriteRule ^(.*)$ /websites/%1/ [L]
ErrorDocument 404 /

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting mod-proxy


    【解决方案1】:

    您的 .htaccess 非常接近您想要的。你只需要使用$1,如图所示:

    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^/websites/
    RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
    RewriteRule ^(.*)$ /websites/%1/$1 [L]
    ErrorDocument 404 /
    

    %1 仅指在RewriteCond 中匹配的域。
    $1 是指在ReqwriteRule 中匹配的 URL 的其余部分。

    编辑:排除www.site.com

    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} !^(www\.)?(site\.com)$ [NC]
    RewriteCond %{REQUEST_URI} !^/websites/
    RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
    RewriteRule ^(.*)$ /websites/%1/$1 [L]
    ErrorDocument 404 /
    

    【讨论】:

    • 谢谢...是否可以排除 www.来自它?
    • 我的意思是如果用户访问主页 www.site.com site.com 或 site.com/index.php,则终止整个查询?感谢您的帮助
    • @user1930593 你的意思是 www.site.com 应该去 site.com 和 www.subdomain.site.com 去 subdomain.site.com 在地址栏中?
    • 不,我希望 www.site.com、site.com、www.site.com/login.php、www.site.com/register.php 等...全部显示原件内容没有重写,除非有 (.*).site.com 除了 www。希望你能理解
    • 非常感谢!完美的! :)
    【解决方案2】:

    考虑“子域”是你网站内的一个文件夹,然后试试下面的代码

    RewriteEngine on
    RewriteBase / 
    
    #if not already subdomain.website.com
    RewriteCond %{HTTP_HOST} !^subdomain\.website\.com$ [NC] 
    #if request is for subdomain/, go to subdomain.website.com
    RewriteRule ^subdomain/$ http://subdomain.site.com [L,NC,R=301] 
    

    【讨论】:

    • 子域未知。它将由用户创建。
    猜你喜欢
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2016-01-08
    相关资源
    最近更新 更多