2

我的 Php mvc 应用程序中有一个目录结构,目前是这样的

/site.com
    .htaccess
    index.php
    /models
    /views..
    /controllers..
    /resources..
        /images.. 
            /misc..
                logo.png
            /products..
                product_image1.jpg
        /js..
        /css..

我想将资源文件夹移动到它自己的子域,因此结构将类似于此

/site.com
    .htaccess
    index.php
    /models
    /views..
    /controllers..

/resources.site.com
    /images.. 
        /misc..
            logo.png
        /products..
             product_image1.jpg
        /js..
        /css..    

我需要知道将资源文件夹中任何内容的请求重定向到新子域的重写规则。

我已经尝试过这条规则和其他一些规则,但它不起作用。

RewriteEngine On

RewriteBase /resources
RewriteCond %{HTTP_HOST} ^resources$ [NC]
RewriteRule ^(.*)$ http://localhost/resources.site.com/$1 [L]

任何帮助将非常感激。谢谢

4

1 回答 1

2

你的规则有点混乱。如果要将资源目录的请求重写新域,则不希望将条件之一作为对新域的请求。在 htaccess 文件中尝试这样的操作:

RewriteEngine On

RewriteCond %{HTTP_HOST} !^resources\.site\.com$ [NC]
RewriteRule ^resources/(.*)$ http://resources.site.com/$1 [R=301,L]

这将使得当您请求http://site.com/resources/images/misc/logo.png时,您将被重定向到http://resources.site.com/images/misc/logo.png

于 2012-05-31T17:02:45.797 回答