Quantcast
Channel: Nginx Forum - Nginx Mailing List - Russian
Viewing all articles
Browse latest Browse all 3102

Проблема с редиректом (no replies)

$
0
0
Добрый день, я новичок в nginx.
Есть nginx перед apache и есть задача:
1. урлы типа "/my_path" молча менять на "/my_path.php"
2. урлы типа "/my_path.php" явно редиректить на урл "/my_path", после чего должно выполниться правило 1. (тоесть опять молча добавить .php)
Я так понял, что это нужно для seo.

Мой конфиг:

server {
listen 8080;
server_name my_apache_server;

location / {
proxy_pass http://my_apache_server/;
}

location ~^\/(.+)$ {
rewrite ^\/(.+)$ /$1.php break;
proxy_pass http://my_apache_server/;
}

location ~^\/(.+)\.php$ {
proxy_redirect http://my_apache_server/$1 http://my_apache_server/error.php;
}

...
}


Но судя по тому, что nginx пишет:

nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block

я так понял, что нельзя использовать proxy_pass и регулярные выражения вместе. Также похоже конфиг очень далёк от правильного.
И можно ли сделать так, чтоб несколько правил выполнились последовательно? Тоесть например, когда одно правило редиректит на урл, который подходит другому правилу.

Viewing all articles
Browse latest Browse all 3102

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>