#前提条件
localでの開発にDockerを用い、nginxのポートフォアードを1111番で指定しています。
この時にトレイルスラッシュありでのアクセスは問題なく行われますが、
( localhost:1111/manage/ => localhost:1111/manage/ )
無しの場合だとport番号の指定がなくなりトレイスラッシュが付与されるという現象が起きます。
( localhost:1111/manage => localhost/manage/ )
#環境
- Docker 18.09.2
- nginx 1.19.0
- php 7.2
- mysql:5.7
#docker-compose
yml
1version: '3' 2services: 3 nginx: 4 image: nginx:latest 5 ports: 6 - ${NGINX_HOST_HTTP_PORT}:80 7 volumes: 8 - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf 9 - ${USER_PROJECT_PATH}:/var/www/html 10 depends_on: 11 - php 12 13 php: 14 build: ./php 15 volumes: 16 - ${USER_PROJECT_PATH}:/var/www/html 17 depends_on: 18 - db 19 20 db: 21 image: mysql:5.7 22 environment: 23 - MYSQL_ROOT_PASSWORD=root 24 ports: 25 - '${MYSQL_PORT}:3306' 26 volumes: 27 - ${DATA_PATH_HOST}/mysql:/var/lib/mysql 28 29 phpmyadmin: 30 image: phpmyadmin/phpmyadmin:latest 31 ports: 32 - ${PMA_PORT}:80 33 depends_on: 34 - db
env
1# Point to the path of your applications code on your host 2USER_PROJECT_PATH=ローカルプロジェクトのパス 3 4# Choose storage path on your machine. For all storage systems 5DATA_PATH_HOST=ホームディレクトリのdata隠しファイルパス 6 7# MySql view port at local machine 8# When using mysql port in docker network, must use default mysql port (3306) 9MYSQL_PORT=3308 10 11# PhpMyAdmin view port at local machine 12PMA_PORT=8888 13 14# HTTP acceess port at local machine to project deployed in docker (80) 15NGINX_HOST_HTTP_PORT=1111
nginx
nginx.conf
server { listen 80; server_name _; root /var/www/html/public; index index.php index.html; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
nginxの設定ではないかと考えていますが、いまいち分かっていません。
phpの設定等は関係ないと考えているので割愛させてもらいますが、必要であれば追記します。
些細なことでも構いません。ご助言お願いいたします。
あなたの回答
tips
プレビュー