Вопрос по ЧПУ
Вопрос по ЧПУ
Данные сервера:
Debian+VestaCP
nginx+phpfpm
Мой форум работает на движке Xenforo. В админке есть функция:
Использовать ЧПУ-ссылки
При включении этой опции, ссылки, сгенерированные системой, не будут включать в себя "index.php?". Однако, чтобы эта функция работала, на сервере должен быть включен модуль mod_rewrite, и соответствующий .htaccess файл должен храниться в корневой папке форума.
Как только я включаю ЧПУ, и пытаюсь войти в какую-либо тему, валится ошибка 404.
Установил я mod_rewrite:
В .htaccess:
В офф документации Xenforo написано следующее:
Для активации ЧПУ на Nginx серверах добавьте следующий код в конфигурационный файл своего сервера:
Вот и возник вопрос, что за конфигурационный файл имеется ввиду? /etc/nginx/nginx.conf? Правильно?
До этого держал этот форум на хостинге и проблем не имел. А вот переехал к себе, столкнулся с этим вопросом.
Debian+VestaCP
nginx+phpfpm
Мой форум работает на движке Xenforo. В админке есть функция:
Использовать ЧПУ-ссылки
При включении этой опции, ссылки, сгенерированные системой, не будут включать в себя "index.php?". Однако, чтобы эта функция работала, на сервере должен быть включен модуль mod_rewrite, и соответствующий .htaccess файл должен храниться в корневой папке форума.
Как только я включаю ЧПУ, и пытаюсь войти в какую-либо тему, валится ошибка 404.
Установил я mod_rewrite:
Code: Select all
a2enmod rewrite
Code: Select all
<IfModule mod_rewrite.c>
RewriteEngine On
# If you are having problems with the rewrite rules, remove the "#" from the
# line that begins "RewriteBase" below. You will also have to change the path
# of the rewrite to reflect the path to your XenForo installation.
#RewriteBase /xenforo
# This line may be needed to enable WebDAV editing with PHP as a CGI.
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
Для активации ЧПУ на Nginx серверах добавьте следующий код в конфигурационный файл своего сервера:
Code: Select all
location /xf/ {
try_files $uri $uri/ /xf/index.php?$uri&$args;
index index.php index.html;
}
location /xf/internal_data/ {
internal;
}
location /xf/library/ {
internal;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
До этого держал этот форум на хостинге и проблем не имел. А вот переехал к себе, столкнулся с этим вопросом.
Re: Вопрос по ЧПУ
Если прописываю в /etc/nginx/nginx.conf?, то nginx после перезапуска вообще не поднимается...
-
- Support team
- Posts: 1047
- Joined: Fri Mar 21, 2014 7:49 am
- Contact:
- Os: CentOS 6x
- Web: apache + nginx
Re: Вопрос по ЧПУ
Имеется ввиду файл
ищите в нем секцию, которая отвечает за нужный домен и правьте
Code: Select all
/home/%username%/conf/web/[s]nginx.conf
Re: Вопрос по ЧПУ
Вообщем пытаюсь вписывать, не выходит:
Модуль mod_rewrite установлен. Если верить офф документации под nginx: https://xenforo.com/help/friendly-urls/. Я должен вписать в конфиг под nginx:
Собственно что я и делаю:
Перезапускаю nginx. Увы все равно ошибка 404 при входе в темы... Не могу понять, что не так... Может я не правильно вписываю?
По дефолту локейшен у меня такой:
Модуль mod_rewrite установлен. Если верить офф документации под nginx: https://xenforo.com/help/friendly-urls/. Я должен вписать в конфиг под nginx:
Code: Select all
location /xf/ {
try_files $uri $uri/ /xf/index.php?$uri&$args;
index index.php index.html;
}
location /xf/install/data/ {
internal;
}
location /xf/install/templates/ {
internal;
}
location /xf/internal_data/ {
internal;
}
location /xf/library/ {
internal;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Code: Select all
location / {
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
expires max;
}
location /сайт.ру/ {
try_files $uri $uri/ /сайт.ру/index.php?$uri&$args;
index index.php index.html;
}
location /сайт.ру/install/data/ {
internal;
}
location /сайт.ру/install/templates/ {
internal;
}
location /сайт.ру/internal_data/ {
internal;
}
location /сайт.ру/library/ {
internal;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
По дефолту локейшен у меня такой:
Code: Select all
location / {
location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
expires max;
}
location ~ [^/]\.php(/|$) {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_pass 127.0.0.1:9003;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
}
}
Re: Вопрос по ЧПУ
Решил ли свою проблему? Столкнулся с аналогичной задачей, интересует решение.sag-sag wrote:Данные сервера:
Debian+VestaCP
nginx+phpfpm
Мой форум работает на движке Xenforo. В админке есть функция:
Использовать ЧПУ-ссылки
При включении этой опции, ссылки, сгенерированные системой, не будут включать в себя "index.php?". Однако, чтобы эта функция работала, на сервере должен быть включен модуль mod_rewrite, и соответствующий .htaccess файл должен храниться в корневой папке форума.
Как только я включаю ЧПУ, и пытаюсь войти в какую-либо тему, валится ошибка 404.
Установил я mod_rewrite:В .htaccess:Code: Select all
a2enmod rewrite
В офф документации Xenforo написано следующее:Code: Select all
<IfModule mod_rewrite.c> RewriteEngine On # If you are having problems with the rewrite rules, remove the "#" from the # line that begins "RewriteBase" below. You will also have to change the path # of the rewrite to reflect the path to your XenForo installation. #RewriteBase /xenforo # This line may be needed to enable WebDAV editing with PHP as a CGI. #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L] RewriteRule ^.*$ index.php [NC,L] </IfModule>
Для активации ЧПУ на Nginx серверах добавьте следующий код в конфигурационный файл своего сервера:Вот и возник вопрос, что за конфигурационный файл имеется ввиду? /etc/nginx/nginx.conf? Правильно?Code: Select all
location /xf/ { try_files $uri $uri/ /xf/index.php?$uri&$args; index index.php index.html; } location /xf/internal_data/ { internal; } location /xf/library/ { internal; } location ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
До этого держал этот форум на хостинге и проблем не имел. А вот переехал к себе, столкнулся с этим вопросом.
Re: Вопрос по ЧПУ
Nginx настолько гибкий что все ваши проблемы решаются в пару строк. Тут форум панели управления, а не шаблонами по факту для панели, учебников в интернете и даже конвертилок с апач конфигов в пхп-фпм для нжинкса просто куча.
Я сам много лет назад задавался подобными вопросами про xenforo итп, благополучно все сам допилил. Универсальных конфигов прям вот что бы коробочно работало - вам дали с вестой, далее каждый кастомит под себя. Если я скину свой конфиг - у вас он работать не будет, тк у меня своеобразно все настроено и ваш стоковый нжинкс даже не стартанет с ними. У каждого движка есть мануал как запустить его на пхп-фпм и даже как работать с кешированием мимо пхп, просто погуглите ненмого.
Я сам много лет назад задавался подобными вопросами про xenforo итп, благополучно все сам допилил. Универсальных конфигов прям вот что бы коробочно работало - вам дали с вестой, далее каждый кастомит под себя. Если я скину свой конфиг - у вас он работать не будет, тк у меня своеобразно все настроено и ваш стоковый нжинкс даже не стартанет с ними. У каждого движка есть мануал как запустить его на пхп-фпм и даже как работать с кешированием мимо пхп, просто погуглите ненмого.