指向/project/current/web-work的符号链接,但不指向/project/current/web/ap



指向/var/www/myproject/current/web/的Symlink正在工作,但正在列出web目录(不好(。

指向/var/www/myproject/current/web/app.php的符号链接不起作用,并给我以下错误:在此服务器上找不到请求的URL/。

/var/log/apache2/error.log中没有日志,/var/log/acche2/access.log中的这一行-404错误

ip - - [17/Mar/2016:06:21:15 -0400] "GET / HTTP/1.1" 404 493 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36"

以下是设置:

Symfony2+Capisfony+Apache+Ubuntu 14.04

这是我的apache2.conf

<Directory />
        Options FollowSymLinks
        AllowOverride all
        Require all denied
</Directory>
<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

这是/var/www/myproject/current/web中的.htaccess

    DirectoryIndex app.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 ^app.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /app.php/
    </IfModule>
</IfModule>

以下是我如何制作符号链接

rm -rf /var/www/html
ln -s /var/www/myproject/current/web/app.php /var/www/html
service apache2 restart

===>404

rm -rf /var/www/html
ln -s /var/www/myproject/web/app.php /var/www/html
service apache2 restart

=>您没有访问/此服务器的权限。

[Thu Mar 17 06:44:53.385300 2016] [core:error] [pid 19767] [client 88.14.213.213:51484] AH00037: Symbolic link not allowed or link target not accessible: /var/www/html

我建议您使用apache的vhost:

它来自symfony食谱:http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html

<VirtualHost *:80>
    ServerName domain.tld
    ServerAlias www.domain.tld
    DocumentRoot /var/www/project/web
    <Directory /var/www/project/web>
        AllowOverride All
        Order Allow,Deny
        Allow from All
    </Directory>
    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeScript assets
    # <Directory /var/www/project>
    #     Options FollowSymlinks
    # </Directory>
    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>

您让apache管理文档根,并将app_dev.php添加到url以使用开发环境,如果您有另一个env(如staging(来测试prod-env(有时是(,这会很方便

要防止文件列表,请添加:

Options -Indexes 

到vhost的目录部分

答案是:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
</Directory>

AllowOverride None正在阻止.htaccess

谢谢你的帮助。

相关内容

最新更新