Иконка ресурса

ЧПУ для XenForo

Hope

Premium
Сообщения
48,305
Решения
22
Реакции
71,870
Баллы
40,905
Пользователь Hope разместил новый ресурс:

ЧПУ для XenForo - Использование ЧПУ в XenForo для разных типов серверов.

ЧПУ (так же называются SEO ссылки) - это адреса страниц, которые являются более читабельными и удобными для человека.

Без использования ЧПУ адрес страницы выглядит так: https://xenforo.info/index.php?threads/thread-title-here.12345/, при включении же ЧПУ адрес становится таким: https://xenforo.info/threads/thread-title-here.12345/

Для корректной работы ЧПУ может потребоваться некоторая настройка сервера, об этом ниже и пойдёт речь.

По умолчанию в XenForo...

Узнать больше об этом ресурсе...
 
Может стоит упомянуть о том что, если не включить "Включать заголовок страницы в URL-адрес" то этого не будет /thread-title-here.12345/. Возможно только я считаю что ЧПУ - это заголовок страницы в url.
 
Немогу включить ЧПУ, настраиваю через ISP.
-Изменяю адресс до форума, Вставляю код с настройками, сохраняю и nginx перезагружаю = вылезает 404 not found.
Думаю что-то с адресом сайта в строках location /var/www/user1/data/www/mysite.com/
Подскажите, в чем проблема?
Код:
user  apache;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;
    client_max_body_size 12m;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/vhosts/*/*.conf;
   
    server {
        server_name localhost;
disable_symlinks if_not_owner;
        listen 80;
    include /etc/nginx/vhosts-includes/*.conf;
    location @fallback {
        error_log /dev/null crit;
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect http://127.0.0.1:8080 /;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        access_log off ;
    }
   
    location /var/www/user1/data/www/mysite.com/ {
        try_files $uri $uri/ /var/www/user1/data/www/mysite.com/index.php?$uri&$args;
        index index.php index.html;
    }

    location /var/www/user1/data/www/mysite.com/internal_data/ {
        internal;
    }
    location /var/www/user1/data/www/mysite.com/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;
    }
    }

}
 
Немогу включить ЧПУ, настраиваю через ISP.
-Изменяю адресс до форума, Вставляю код с настройками, сохраняю и nginx перезагружаю = вылезает 404 not found.
Думаю что-то с адресом сайта в строках location /var/www/user1/data/www/mysite.com/
Подскажите, в чем проблема?
Код:
user  apache;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;
    client_max_body_size 12m;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/vhosts/*/*.conf;
  
    server {
        server_name localhost;
disable_symlinks if_not_owner;
        listen 80;
    include /etc/nginx/vhosts-includes/*.conf;
    location @fallback {
        error_log /dev/null crit;
        proxy_pass http://127.0.0.1:8080;
        proxy_redirect http://127.0.0.1:8080 /;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        access_log off ;
    }
  
    location /var/www/user1/data/www/mysite.com/ {
        try_files $uri $uri/ /var/www/user1/data/www/mysite.com/index.php?$uri&$args;
        index index.php index.html;
    }

    location /var/www/user1/data/www/mysite.com/internal_data/ {
        internal;
    }
    location /var/www/user1/data/www/mysite.com/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;
    }
    }

}
Так а в админке форума ЧПУ включали?
 
Да включал, конечно!
 
только на сервере нужно еще включить mod_rewrite
 
на данный момент у меня апаче вообще не включен. На сколько я понимаю mod_rewrite только в апаче?

Я заметил, что в первой строке user apache. Может здесь, что-то менять нужно?
 
Скоро наизусть выучу правила rewrite для nginx.. все равно не работает.
 
Нашел ещё файл с настройками для nginx... /etc/nginx/vhosts/user1/mysite.com.conf.
Как ни вставлял этот код
Код:
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;
}
ничего не идет. Что и куда вставлять, и какой адрес писать вместо /xf/??? Я уже десятки вариантов перепробовал.
Код:
#user 'user1' virtual host 'mysite.com' configuration file
server {
    server_name mysite.com www.mysite.com;
    charset UTF-8;
    disable_symlinks if_not_owner from=$root_path;
    index index.html index.php;
    root $root_path;
    set $root_path /var/www/user1/data/www/mysite.com;
    error_log /dev/null crit;
    include /etc/nginx/vhosts-includes/*.conf;
    location / {
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @php;
        }
    }
    location @php {
        fastcgi_index index.php;
        fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f [email protected]";
        fastcgi_pass unix:/var/www/php-fpm/user1.sock;
        fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
        try_files $uri =404;
        include fastcgi_params;
    }
    ssi on;
    access_log off ;
    listen 158.69.202.35:80;
}
Это мой первоначальный конфиг БЕЗ чпу, то есть здесь ничего не тронуто. Напомню что все это я делаю в ISPmanager.
Хостер мой OVH, недавно обратился с просьбой по настройке домена, прислал мне ссылок и посоветовал их изучить, думаю и тут будет также.

Если у кого то есть настроенные чпу в ISPmanager, буду очень признателен за помощь!
 
Projex,
Код:
    location / {
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @php;
        }
    }
Вместо вот этого, вставляем вот это:
Код:
    location / {
        try_files $uri $uri/ /index.php?$uri&$args;
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @php;
        }
    }
    location ^~ /library/ {
        internal;
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @php;
        }
    }
    location ^~ /internal_data/ {
        internal;
        location ~ [^/]\.ph(p\d*|tml)$ {
            try_files /does_not_exists @php;
        }
    }
Вот и все ЧПУ для XenForo.
 
Спасибо всем! Помогло! Exile отдельное спасибо!
 
А каким образом можно избавиться от порядкового номера темы в урле?
 
А каким образом можно избавиться от порядкового номера темы в урле?
Ага. Вася создает тему "Ищу подругу", Петя создает тему "Ищу подругу", Дима создает тему "Ищу подругу" и у всех тем одинаковая транслитерация. А потом на форум специальную бабку-Вангу выписывают, которая у каждого входящего в тему Васи/Пети/Димы узнает, чью именно тему он хочет открыть.

Как движок-то определять темы должен без id?
 
Тоже верно. Пусть остается.
 
Здравствуйте! Можно совета от Вас, уважаемые)) суть в следующем: у меня сейчас так: хттп://мойфорум.ком/index.php , индекс включен только по причине того, что подключен скрипт от DDoS атак, между прочем не плохо помогает... А вот что касается оптимизации, то "Использовать ЧПУ-ссылки" с этим лучше индексируется форум и тд. Собственно вопрос: как подключить оба варианта ? Или если же не как, то какой вариант лучше ?) Форум hack и по этому ddos"ы мучают частенько.
 
Всем привет. Помогите с настройкой ЧПУ под nginx. Бьюсь какой день, все равно ошибка 404. Стоит Debian 8 + VestaCP. До этого стоял апач, вообще без проблем.

Вот дефолтный конфиг (/home/%username%/conf/web/nginx.conf):
Код:
server {
    listen      185.5.248.50:80;
    server_name сайт www.сайт;
    root        /home/ИМЯ/web/сайт/public_html;
    index       index.php index.html index.htm;
    access_log  /var/log/nginx/domains/сайт.log combined;
    access_log  /var/log/nginx/domains/сайт.bytes bytes;
    error_log   /var/log/nginx/domains/сайт.error.log error;

    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:9002;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    }

    error_page  403 /error/404.html;
    error_page  404 /error/404.html;
    error_page  500 502 503 504 /error/50x.html;

    location /error/ {
        alias   /home/ИМЯ/web/сайт/document_errors/;
    }

    location ~* "/\.(htaccess|htpasswd)$" {
        deny    all;
        return  404;
    }

    location /vstats/ {
        alias   /home/ИМЯ/web/сайт/stats/;
        include /home/ИМЯ/web/сайт/stats/auth.conf*;
    }

    include     /etc/nginx/conf.d/phpmyadmin.inc*;
    include     /etc/nginx/conf.d/phppgadmin.inc*;
    include     /etc/nginx/conf.d/webmail.inc*;

    include     /home/ИМЯ/conf/web/nginx.сайт.conf*;
}

Делаю по офф инструкции: , все равно 404...

Все! Вопрос решен. По дурости и незнанию правил не тот конфиг.
Надо было snginx.conf
 
Последнее редактирование:
Вообщем стоит файл index.php в корне domen/index.php и форум domen/forum/
NGINX:
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.php index.html index.htm;

    server_name IP;

    location /forum/ {
        try_files $uri $uri/ /forum/index.php?$uri&$args;
        index index.php index.html;
    }

    location /forum/internal_data/ {
        internal;
    }
    location /forum/library/ {
           internal;
    }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;

        }

    location ~ /\.ht {
        deny all;
    }
}
Что у меня не правильно?
 
src закрыть ещё надо.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу