当Apache2中的Alias时,RewriteRule失败

时间:2012-04-12 19:28:42

标签: apache .htaccess mod-rewrite web mod-alias

所以,我想组织我的项目以便更好地发展。我选择使用这种方式组织文件夹&文件:

www
    projects
        project1
           web
           design_tests
        project2
           web
           design_tests
...

每个项目的网站都会进入“web”文件夹。我还想在浏览器上访问网页而不输入“web”文件夹名称,所以:

http://localhost/projects/project1
will access the physical files of:
/www/projects/project1/web

我完成了将下一行添加到/ etc / apache2 / sites-available / default文件中:

AliasMatch ^/projects/([^/]*)(/.*)? /www/projects/$1/web$2

完美无缺。问题是,在某些网站中,我有一个带有一些RewriteRule规则的.htaccess文件。一个例子:

RewriteEngine On
RewriteRule styles\.css styles_20120107.css

他们过去没有别名和正常的工作。现在他们没有。它重定向到URL /project1/web/styles_20120107.css,当然,由于Alias,浏览器无法获取它。我真的不知道如何解决它。你能给我一些帮助吗?如果可能,在文件/ etc / apache2 / sites-available / default中进行修改,而不是在.htaccess上进行修改,因为我希望网站是跨服务器的。

提前致谢:)

1 个答案:

答案 0 :(得分:1)

如果添加[PT]标志对您不起作用...为什么不用重写规则替换别名,以达到相同的效果 - 在这种情况下,您应该完全避免这个问题。