Przeczytałem wiele pytań tutaj w StackOverflow, a także wypróbowałem odpowiedzi na nie, ale nadal nie mogę osiągnąć tego, czego potrzebuję.
Mam następujący prosty kod routingu napisany w PHP:
$page = $_GET['page'];
echo "<section id='content' class='container'>";
if ( isset($page) )
{
switch($page)
{
case "guides":
require_once("v/pages/guides/index.php");
break;
case "error-list-dpto":
require_once("v/pages/error-list/error-list-dpto.php");
break;
//other cases here...
}
}
echo "</section>";
Poniżej mam prostą konfigurację nginx:
server {
listen 80;
listen [::]:80;
root /app/mylogs;
server_name localhost;
index index.php;
location /(.*) {
try_files $uri $uri/ /index.php?page=$1 =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Chcę uzyskać dostęp do czegoś takiego jak „http://example.com/guides" i ustawić zmienną $page otrzymuj słowo „przewodniki” jako wartość.
Ale mój kod NGINX nie działa. Kiedy próbuję uzyskać dostęp do powyższego adresu, otrzymuję numer 404 od NGINX.
Co ja robię źle?
Dziękuję Ci.
1 odpowiedź
Udało mi się osiągnąć to, czego potrzebuję, używając następujących linii pliku konf NGINX:
rewrite ^/page/(.*)$ /index.php?page=$1 last;
location / {
try_files $uri $uri/ =404;
}
Podobne pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.