У меня есть приложение Laravel, работающее на mydomain.com, теперь у меня есть другое приложение laravel, которое мне нужно запустить на mydomain.com/email. Как мне сделать это с помощью конфигурации Apache?
Я уже знаю, как заставить его работать с Nginx:
server {
listen 80;
listen 443 ssl http2;
server_name .poptin.test;
root "/home/vagrant/Code/poptin_v3/public";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location /mail {
alias /home/vagrant/Code/acellemail/public;
try_files $uri $uri/ @mail;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
}
location @mail {
rewrite /mail/(.*)$ /mail/index.php?/$1 last;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/poptin.test-error.log error;
sendfile off;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
ssl_certificate /etc/nginx/ssl/poptin.test.crt;
ssl_certificate_key /etc/nginx/ssl/poptin.test.key;
}
Но я не уверен, как это перевести в конфигурацию apache. Есть идеи, с чего начать?
РЕДАКТИРОВАТЬ:
Пробовал это:
Alias /email "/var/www/html/emaildev.popt.in/current/public"
<Directory "/var/www/html/emaildev.popt.in/current/public">
AllowOverride All
</Directory>
В конфигурации сайта приложения laravel верхнего уровня, но не работал. По-прежнему направляется к 404 в приложении верхнего уровня.
О, я добавил это в блок https, и теперь он работает. Он находится перед входом в систему другого приложения, но я вижу The requested URL was not found on this server.
Итак, я предполагаю, что мне нужно внести изменения в .htaccess вложенного приложения, чтобы как-то переписать правило, но я не уверен, как это сделать.