Воскресенье , 16 Декабрь 2018
Home / Vbulletin 5 / Краткое руководство nginx rewrites | VB5
nginx rewrites
nginx rewrites

Краткое руководство nginx rewrites | VB5

Ниже приводится руководство о том, как изменить настройки по умолчанию на связке Nginx и PHP-FPM, чтобы настроить форум на правильный rewrites.
Первый шаг заключается в добавлении захвата для обработки некоторых устаревших запросов на Vbulletin 5.

Вы должны в настройках видеть что-то вроде этого:

Автор: Алексей Раков

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	#
	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
	
		# With php5-cgi alone:
		#fastcgi_pass 127.0.0.1:9000;
		# With php5-fpm:
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
                
	}

Или возможно у вас просто:

location ~ \.php$ {

Нам нужно добавить директиву rewrite в самый низ, для этого вам нужно найти }, которая закрывает данный снипет, и добавьте перед закрывающейся скобкой следующий код:

#vBulletin Legacy Rewrites
                if (!-f $request_filename) {
			rewrite ^$PATH$/(.*)$ $PATH$/index.php?routestring=$1 break;
                }

После того как вы добавите код приведенный выше, у вас должно получиться примерно так:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
	#
	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
		# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
	
		# With php5-cgi alone:
		#fastcgi_pass 127.0.0.1:9000;
		# With php5-fpm:
		fastcgi_pass unix:/var/run/php5-fpm.sock;
		fastcgi_index index.php;
		include fastcgi_params;
		#vBulletin Legacy Rewrites
                if (!-f $request_filename) {
			rewrite ^$PATH$/(.*)$ $PATH$/index.php?routestring=$1 break;
                }
	}

Теперь, когда мы получили, то что хотели, вам нужно добавить следующий код, где-то в файлах vhosts, либо до, либо после установки PHP, в моем тестировании это, похоже, не имеет большого значения.

## vbulletin rewrites
	#CSS Rewrite
       location = $PATH$/css\.php {
                rewrite ^ $PATH$/core/css.php break;
        }

        # make install available from presentation
        location ^~ $PATH$/install {
                rewrite ^$PATH$/install/(.*)$ $PATH$/core/install/$1 redirect;
        }

        # any request to not existing item gets redirected through routestring
        location $PATH$/ {
                if (!-f $request_filename) {
                        rewrite ^$PATH$/(.*)$ $PATH$/index.php?routestring=$1 last;
                }
        }

        # make admincp available from presentation
        location ^~ $PATH$/admincp {
                if (!-f $request_filename) {
                        rewrite ^$PATH$/admincp/(.*)$ $PATH$/index.php?routestring=admincp/$1 last;
                }
        }
## end vBulletin normal rewrites

Замечание о путях: Некоторые форумы могут работать из корня их виртуальных хостингов и в этом случае, вы можете удалить вхождение $ PATH и эти правила должны работать нормально.
Если вы запустили свой сайт как example.com/forums/ Вы должны заменить $ PATH $ для каждого вхождения, пример изменения будет выглядеть так:

# make admincp available from presentation
        location ^~ /forums/admincp {
                if (!-f $request_filename) {
                        rewrite ^/forums/admincp/(.*)$ /forums/index.php?routestring=admincp/$1 last;
                }
        }

Быстрый поиск и замена с помощью вашего любимого текстового редактора должна позволить вам обновить все правильно.

Рейтинг статьи

0%

Рейтинг

Оцените данный материал!

User Rating: Be the first one !

About artscripts

Check Also

Подписка и пробный доступ

vB5 | Как установить пробный доступ для новых участников

Это обновление инструкций, которые изначально были созданы для vBulletin 3. Это инструкция которая поможет установить …

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.