Я знаю, что это было задано много раз, но со мной что-то странное. Apache DocumentRoot указывает на симфони/Web/ и это мой .htaccess внутри веб/директории:Symfony: htaccess, чтобы скрыть app.php или app_dev.php
DirectoryIndex app_dev.php
#DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ app_dev.php [QSA,L]
#RewriteRule ^(.*)$ app.php [QSA,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule .? %{ENV:BASE}app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /app.php/
</IfModule>
</IfModule>
Ну, вещь www.example.com/route1/
работает и www.example.com/route2/
бросает ошибку:
Oops! An Error Occurred The server returned a "404 Not Found". Something is broken. Please e-mail us at [email] and let us know what you were doing when this error occurred. We will fix it as soon as possible. Sorry for any inconvenience caused.
Пока www.example.com/app_dev.php/route2/
работает нормально (также www.example.com/app_dev.php/route1/
)
Помощь?
Обновление. Кэш ясно прод выдает эту ошибку (я никогда не пробовали раньше, я работаю на разработчика):
[Doctrine\Common\Proxy\Exception\UnexpectedValueException] The type hint of parameter "userRoles" in method "addRole" in class "MyProject\PanelBundle\Entity\User" is invalid.
[ReflectionException] Class Maycol\BlogBundle\Entity\Role does not exist
По какой-то причине «RewriteRule^app \ .php (/ (.*) | $)% {CONTEXT_PREFIX }/$ 2 [R = 301, L] 'работает только для событий'/app.php/'для меня, а не' app.php'. Мне пришлось дублировать эти строки и вместо этого добавить запись 'RewriteRule^app \ .php $% {CONTEXT_PREFIX}/[R = 301, L]'. Не знаю, как работает регулярное выражение! – PeterB
Можете ли вы показать свой последний файл? Я не могу заставить его работать на сервере производства (app.php) – InsaurraldeAP