Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярка на NGinx

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Lolya
Отправлено: 22 Августа, 2020 - 21:00:56
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Май 2018  


Помог: 2 раз(а)




Прошу помощи по регулярке, а именно перенаправлению на доугое название этой-же страницы.
Вот к примеру у меня для Апача такая регулярка в файле .htaccess :
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} www.sayt
  3. RewriteRule (.*) https://sayt/$1 [R=301,L]
  4. RewriteBase /
  5. RewriteCond %{REQUEST_FILENAME} !-s
  6. #
  7. Options +FollowSymlinks
  8. RewriteRule ^rqst(/?)+$ recoverquestion.php [L]
  9. RewriteRule ^online(/?)+$ online0.php [L]
  10. RewriteRule ^delact(/?)+$ delacct.php [L]
  11. RewriteRule ^treg(/?)+$ treg.php [L]
  12. RewriteRule ^seedbonus(/?)+$ seedbonus.php [L]
  13. RewriteRule ^recover(/?)+$ recover.php [L]


То-есть, при заходе на sayt/rqst, я попаду на страницу recoverquestion.php , только в адресной строчке будет прописано sayt/rqst

Как такое сделать на сарвере Nginx ?

У меня такая конфига сервера:
Цитата:
Веб-сервер (WWW):
Apache MPM-ITK 2.4.6-93.el7.centos, PHP module 5.4.16-48.el7, PHP-FPM 5.4.16-48.el7, awstats 7.7-1.el7, logrotate 3.8.6-19.el7, nginx 1.16.1-1.el7.ngx, webalizer 2.23_08-6.el7


И пока сайт крутиться на этом: Модуль Apache: CGI
Если поставить на Модуль Apache: FastCGI (Nginx + PHP-FPM) то переадресация слетает что прописана в хитачесе.

Прошу помощи - куда прописать и что именно, с одним примером, дальше я сама по этому примеру сделаю.
Заранее спасибо!
 
 Top
LIME
Отправлено: 22 Августа, 2020 - 21:25:39
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




там чуть по другому делается
ты лучше покажи какой у тебя конфиг джинкса
а пока например так можно
CODE (htmlphp):
скопировать код в буфер обмена
  1. location /rqst {
  2.     try_files $uri /recoverquestion.php$is_args$args;
  3. }

тут он по очереди пробует файлы дернуть
$uri - означает что сначала пробует найти файл rqst
(Добавление)
вот глянь для примера целый конфиг
https://symfony[dot]com/doc/current/[dot][dot][dot]ation[dot]html#nginx
 
 Top
Lolya
Отправлено: 22 Августа, 2020 - 21:39:34
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Май 2018  


Помог: 2 раз(а)




LIME пишет:
ты лучше покажи какой у тебя конфиг джинкса

*** закрыла адресс и важное.
Цитата:

server {
server_name ***.top www.***.top;
charset UTF-8;
index index.php index.html;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/***.top/*.conf;
access_log /var/www/httpd-logs/***.top.access.log;
error_log /var/www/httpd-logs/***.top.error.log notice;
ssi on;
return 301 https://$host:443$request_uri;
set $root_path /var/www/www-root/data/www/***.top;
root $root_path;
gzip on;
gzip_comp_level 9;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
location / {
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
expires 14d;
}
}
listen ***:80;
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f ***@gmail.com";
fastcgi_pass unix:/var/www/php-fpm/www-root.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}
}
server {
server_name ***.top www.***.top;
ssl_certificate "/var/www/httpd-cert/www-root/***.top.crtca";
ssl_certificate_key "/var/www/httpd-cert/www-root/***.top.key";
ssl_ciphers EECDH:+***:-3DES:RSA+AES:!NULL:!RC4;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security "max-age=31536000;";
ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
charset UTF-8;
index index.php index.html;
disable_symlinks if_not_owner from=$root_path;
include /etc/nginx/vhosts-includes/*.conf;
include /etc/nginx/vhosts-resources/*.top/*.conf;
access_log /var/www/httpd-logs/*.top.access.log;
error_log /var/www/httpd-logs/***.top.error.log notice;
ssi on;
set $root_path /var/www/www-root/data/www/***.top;
root $root_path;
gzip on;
gzip_comp_level 9;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
location / {
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
expires 14d;
}
}
listen 81.91.***.38:443 ssl http2;
location @php {
fastcgi_index index.php;
fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f ***@gmail.com";
fastcgi_pass unix:/var/www/php-fpm/www-root.sock;
fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
try_files $uri =404;
include fastcgi_params;
}
}

(Добавление)
LIME пишет:
пока например так можно

CODE (htmlphp):
скопировать код в буфер обмена
  1. location /rqst {
  2.     try_files $uri /recoverquestion.php$is_args$args;
  3. }


тут он по очереди пробует файлы дернуть
$uri - означает что сначала пробует найти файл rqst

то-есть, мне надо прописать вот так для каждого?

CODE (htmlphp):
скопировать код в буфер обмена
  1. location /rqst {
  2.     try_files $uri /recoverquestion.php$is_args$args;
  3. }
  4. location /online {
  5.     try_files $uri /online0.php$is_args$args;
  6. }
  7. location /delact {
  8.     try_files $uri /delacct.php$is_args$args;
  9. }
  10. location /treg {
  11.     try_files $uri /treg.php$is_args$args;
  12. }
  13. location /seedbonus {
  14.     try_files $uri /seedbonus.php$is_args$args;
  15. }
  16. location /recover {
  17.     try_files $uri /recover.php$is_args$args;
  18. }
  19. location /reg {
  20.     try_files $uri /reg.php$is_args$args;
  21. }


Вариант работает, но каждую так прописывать, верно? Огорчение

(Отредактировано автором: 22 Августа, 2020 - 21:44:31)

 
 Top
LIME
Отправлено: 23 Августа, 2020 - 00:54:25
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




Lolya пишет:
но каждую так прописывать, верно?
но в апаче ты же каждую прописывала верно?)
тут лучше всего тебе открыть для себя паттерн фронт-контроллер(все запросы идут на один файл)
а еще лучше начни использовать фреймворк
https://symfony[dot]ru/doc/current/index[dot]html
 
 Top
Lolya
Отправлено: 23 Августа, 2020 - 09:26:23
Post Id


Гость


Покинул форум
Сообщений всего: 69
Дата рег-ции: Май 2018  


Помог: 2 раз(а)




LIME пишет:
но в апаче ты же каждую прописывала верно?)
тут лучше всего тебе открыть для себя паттерн фронт-контроллер(все запросы идут на один файл)

Окей, а как быть с таким?
CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteRule ^browse_([0-9]*)(/?)+$ browse.php?page=$1 [L]
  2. RewriteRule ^details_([0-9]*)(/?)+$ details.php?id=$1 [L]
  3. RewriteRule ^details_([0-9]*)&hit=1(/?)+$ details.php?id=$1&hit=1 [L]


Что прописать?

Спасибо, то я почитаю.
 
 Top
LIME
Отправлено: 23 Августа, 2020 - 14:04:49
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




знатные конечно извращения, и тут помог бы нормальный роутинг ну да ладно
https://www[dot]nginx[dot]com/blog/creat[dot][dot][dot]x-rewrite-rules/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB