相同的git项目,两台本地服务器,使用克隆git和相同的部署步骤(symfony2),仅在一台服务器中为所有prod env站点提供HTTP 404
在两台机器上使用相同的步骤f.e.composer install命令克隆和部署了一个git项目。这两台机器都是本地服务器,带有WAMP和项目空缓存,导致server1中prod env站点的HTTP 404,并在server2上正常工作 developmentenv在两台服务器中都能正常工作 server1和server2中的Apache httpd.conf相同 两个项目中的公用目录中的.htaccess相同。 服务器1:相同的git项目,两台本地服务器,使用克隆git和相同的部署步骤(symfony2),仅在一台服务器中为所有prod env站点提供HTTP 404,git,apache,.htaccess,symfony,Git,Apache,.htaccess,Symfony,在两台机器上使用相同的步骤f.e.composer install命令克隆和部署了一个git项目。这两台机器都是本地服务器,带有WAMP和项目空缓存,导致server1中prod env站点的HTTP 404,并在server2上正常工作 developmentenv在两台服务器中都能正常工作 server1和server2中的Apache httpd.conf相同 两个项目中的公用目录中的.htaccess相同。 服务器1: .../web -works .../web/app_dev.php
.../web -works
.../web/app_dev.php/ -works
.../web/app_dev.php/book -works
.../web/book - 404
.../web/app_dev.php/new -works
.../web/new - 404
调试:服务器1上的路由:
Name Method Scheme Host Path
index ANY ANY ANY /
book ANY ANY ANY /book
new ANY ANY ANY /new
.htaccess在web/symfony2公共目录中
DirectoryIndex app.php
<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>
您是否运行了-php app/console cache:clear-env=prod-no warmup使用debug false清除prod环境的缓存,但缓存仍然是清除的。@A.L.没有slashDoes时相同…/web/app.php/new work?这看起来像是URL重写失败了,它应该以静默方式调用app.php/。@A.L使用/app.php/!你知道这意味着什么,以及如何改变它吗?如果你不知道,如果你愿意,我可以接受上面的答案。