Я хочу, чтобы один php-скрипт обрабатывал все входящие запросы в my/blog directoy. Скрипт php проверяет наличие записи SQL для URL-адреса (например, www.example.com/blog/example_article). Если запись найдена, она обслуживает соответствующие данные страницы. Если нет записи для URL-адреса (т. Е. Www.example.com/blog/nothing_here), она перенаправляется на 404.Перенаправить все url в каталог на один php в nginx
Для этого мне нужно правило перезаписи в nginx.
Мой текущий конфиг:
root /usr/share/nginx/html/example/;
index index.php;
server_name example.com www.example.com;
location/{
try_files $uri $uri/ @extensionless-php;
}
location /blog {
rewrite ?; // here i need a rewrite rule
}
location /uploads {
deny all;
}
error_page 404 /templates/404.php;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_intercept_errors on;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
Пожалуйста, обратите внимание, что я использую extensionless URL.
Возможный дубликат [Переписать все запросы к index.php с Nginx] (http://stackoverflow.com/questions/12924896/rewrite-all-requests-to-index-php -with-nginx) – rzelek
Мне удалось зайти так далеко: location/blog { rewrite ^/([a-z0-9 -] +) /article.php?slug=$1; } но я получаю свою 404 страницу – J4rVan