Я почти уверен, что это некоторая проблема с конфигурацией Apache, потому что он работал на предыдущем хостинг-провайдере с той же конфигурацией PHP / MySQL. В моем приложении пользователи могут удалять фотографии, используя такие URI:
http://example.com/my-account/remove-media/id/9/ret/my-account%252Fedit-album%252Fid%252F1
Идентификатор параметра - это идентификатор удаляемой фотографии, параметр ret - это относительный URL-адрес, куда следует перенаправить пользователя после удаления фотографии, но после нажатия на ссылку, подобную этой, я получаю сообщение об ошибке 404 Не найдено текст:
Not Found
The requested URL /public/my-account/remove-media/id/9/ret/my-account/edit-album/id/1 was not found on this server.
Хотя раньше он работал на моем предыдущем хостинг-провайдере, поэтому я думаю, что это просто какая-то простая проблема конфигурации Apache?
Еще одна вещь, есть файл htaccess, который меняет корень документа на / public:
RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
В общей папке есть второй файл htaccess для MVC:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ /index.php [NC,L]