使用.htaccess永久重定向到子文件夹

时间:2014-11-04 16:42:29

标签: php apache .htaccess symfony redirect

我在共享主机上设置Symfony2项目,但我遇到了一些问题。 Symfony2默认情况下在index.php目录中有调度控制器或主文件(许多系统中的文件是/web),所以如果我将所有项目移动到共享主机上的public_html那么它在我将/web追加到URL的末尾之前,我一直都行不通。这对用户来说是糟糕的,因为他们知道域名的页面。我尝试使用.htaccess进行重定向,如下所示:

//301 Redirect Entire Directory
RedirectMatch 301 /(.*) /web/$1

//Prevent directory listings
Options All -Indexes

但它没有工作,因为托管说.htaccess文件中的这些行是坏的,那我怎么能解决这个问题呢?

2 个答案:

答案 0 :(得分:1)

在root .htaccess中,您可以使用此mod_rewrite规则:

//Prevent directory listings
Options All -Indexes

RewriteEngine On

RewriteRule ^((?!web/).*)$ /web/$1 [L,NC,R=301,NE]

答案 1 :(得分:0)

你知道什么时候你买了一些托管,你在你最喜欢的客户端制作了第一个FTP吗?

您可能会看到以下内容:

/
    ftp/
    httpdocs/
    access_log.txt

此方案中的web/目录是httpdocs/。有时,目录名为public_htmlwwwhtml

他们在一天结束时都是一样的。

在您的symfony项目中,app/src/vendor/目录应该位于公共根目录之后。

通常,在受控服务器上,您可以创建指定文档根目录的虚拟主机。但是,如果您尝试上传网站,请将所有内容移至父目录,并将网络目录重命名为设置使用的服务器。