.htaccess 如何在共享主机上定义Symfony根目录?

.htaccess 如何在共享主机上定义Symfony根目录?,.htaccess,symfony,configuration,url-rewriting,shared-hosting,.htaccess,Symfony,Configuration,Url Rewriting,Shared Hosting,是否有人有在共享主机(Linux)上使用Symfony的经验。 我在本地主机上使用Symfony,它工作正常。 我还安装了Apache包 当我想在Web服务器上打开网站时,我必须编写www.mywebsite.com/public来查看我的网站。我试图将这一行DocumentRoot/var/www/project/public添加到.htaccess文件中(该文件位于公用文件夹中),但没有进行更改。不知道如何让它像在本地主机上一样工作。服务器上的项目是本地主机上项目的克隆 我试图将文档中的代码

是否有人有在共享主机(Linux)上使用Symfony的经验。 我在本地主机上使用Symfony,它工作正常。 我还安装了Apache包

当我想在Web服务器上打开网站时,我必须编写www.mywebsite.com/public来查看我的网站。我试图将这一行
DocumentRoot/var/www/project/public
添加到.htaccess文件中(该文件位于公用文件夹中),但没有进行更改。不知道如何让它像在本地主机上一样工作。服务器上的项目是本地主机上项目的克隆

我试图将文档中的代码复制到.htaccess文件中,但没有成功

我还尝试将.htaccess文件从公用文件夹移动到根目录中。但是我收到一条警告信息,我应该联系管理员

这是我的.htaccess文件:

DirectoryIndex index.php

<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{HTTP:Authorization} .
    RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^ - [L]

    RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 307 ^/$ /index.php/
    </IfModule>
</IfModule>
DirectoryIndex.php
选项-多视图
重新启动发动机
RewriteCond%{REQUEST_URI}:$1^(/.+)/(.*):\2$
重写规则^(.*)-[E=基:%1]
RewriteCond%{HTTP:Authorization}。
重写规则^-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
RewriteCond%{ENV:REDIRECT_STATUS}^$
重写规则^index\.php(?:/(.*)|$)%{ENV:BASE}/$1[R=301,L]
RewriteCond%{REQUEST_FILENAME}-f
重写规则^-[L]
重写规则^%{ENV:BASE}/index.php[L]
重定向匹配307^/$/index.php/

对于默认安装,我想您不应该修改
.htaccess
文件中的任何内容。如果您的共享帐户只能有一个域,并且域后面的网站是symfony应用程序,则在不使用
/public
的情况下访问它。但是如果您有子域,则只使用
/public
。您应该在
.composer.json
文件中查看
symfony\u web\u dir
也是
public
。如果没有,请将其更改为
public
,然后
composer dump autoload-o
让composer知道。@DanCostinel您的意思是我不应该将我的域分配给Symfony根文件夹,而是分配给public文件夹。就这么简单?嗯,测试过了。显然,这不适用于
public
文件夹,而不是Symfony根文件夹。当您的应用程序联机时,
app.php
(位于
public
dir)正在访问您的应用程序。是的,它正在工作。如果没有,那么你在做其他错误的事情。如果我的域被分配到symfony的根文件夹,那么我可以打开www.mypage.com/public,然后我可以看到我的网站。但当我将我的域分配到公用文件夹时,我只看到一个空白页。这可能是什么原因?