- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Перевожу один сайт с апача на Nginx, вроде перенес, но при навигации по сайту вижу только главную, хотя адреса урла меняются.
В .htaccess есть запись
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [L]
Сервис https://winginx.com/ru/htaccess преобразовал ее в
if (!-e $request_filename){
rewrite ^(.*)$ /index.php/$0 break;
}
}
Но при тестировании конфигурации идет сообщение об ошибке
nginx: [emerg] unknown "0" variable
nginx: configuration file /etc/nginx/nginx.conf test failed
Что не так? Пробовал 0 заменить на 1 - тогда на всех страницах получаю 404 ошибку, кроме главной
Вот здесь ноль откуда взялся?
---------- Добавлено 25.07.2019 в 18:35 ----------
Используйте $uri или $request_uri вместо $0
Попробовал, теперь на всех кроме главной 404
Dram, У Nginx нельзя использовать $0, и меняется оно на то, что я сказал, больше не на что, насколько я понимаю из документации. Вообще правило должно выглядеть так:
location ~ / {
return 301 /index.php$request_uri;
}
# Try first the actual files, if they do not exist, then try $request_uri via `index.php`.
try_files $uri $uri/ /index.php/$request_uri;
location ~ / {
return 301 /index.php$request_uri;
}
дает бесконечную переадресацию...
RewriteEngine On
RewriteBase //
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Protect application and system files from being viewed
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
# List of files in subdirectories will not be displayed in the browser
Options -Indexes
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
AddDefaultCharset utf-8
AddCharset UTF-8 .htm .html .txt
AddType "text/html; charset=UTF-8" .htm .html .txt
AddType "text/css; charset=UTF-8" .css
AddType "text/javascript; charset=UTF-8" .js
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
В оригинале было это?
Тогда надо
autoindex off;
location ~ /\.* {
deny all;
}
location ~ /(?:application|modules|system) {
return 301 /index.php$request_uri;
}
# Try first the actual files, if they do not exist, then try $request_uri via `index.php`.
try_files $uri $uri/ /index.php/$request_uri;
Вот весь .htaccess
# Set some security parameters
Options All -ExecCGI -Indexes -Includes +FollowSymLinks
ServerSignature Off
# Turn on URL rewriting
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]
# Force UTF-8 encoding
AddDefaultCharset UTF-8
# Rewrite all other URLs to index.php/URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [L]
try_files $uri $uri/ /index.php/$request_uri;
прописывали ?
Да, вот как было
try_files $uri $uri/ /index.php?$args;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php/$uri break;
}
}
так тоже дает 404
try_files $uri $uri/ /index.php/$request_uri;
if (!-e $request_filename){
rewrite ^(.*)$ /index.php/$uri break;
}
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location / {
try_files $uri $uri/ /index.php?$query_string;
}
это опять позволяет гулять по всему сайту - но инфа всегда только главной страницы