Страница 1 из 1

Drupal 7+ Nginx = Проблема с Чистыми ссылками

Добавлено: 06 янв 2014, 01:15
jorgas
Я тестирую сайт на Друпал 7, Open Sever у меня настроен, таким образом: HTTP: Nginx 1.4.4, port:82; PHP: v5.3.27, port:9000; IP сервера: 127.0.0.1; корневая папка доменов: domains.
Для того, что бы включить Чистые ссылки я создал файл ".nxaccess" в него я поместил взятый с официального сайта Друпала код:
server {
     listen 82;
     server_name  test.lc;
     location / {
         root D:/OpenServer/domains/test.lc/www;
         index  index.php;
         error_page 404 = @drupal;
     }
     location @drupal {
         rewrite ^(.*)$ /index.php?q=$1 last;
     }
 }
Имя сервера (server_name) и путь (root) я естественно указал свои. Сам файл я поместил в папку с Друпалом по указанному (/domains/test.lc/www), перезапустил сервер, зашел на сайт под админом и попробовал включить Чистые ссылки на что получил сообщение "Тест "чистых URL" не пройден".
Так же я перепробовал еще с десяток вариантов конфигурации с других сайтов и все безрезультатно.
Я даже нарочно нарушал синтаксис в файле конфигурации, что бы проверить какая будет реакция сервера, но у меня сложилось такое впечатление, что сервер никак не реагирует на изменения в .nxaccess файле.
Поскольку я практически не разбираюсь в конфигурации сервера Nginx и действовал методом "научного тыка", то предполагаю, что все таки я сделал что-то не так.
Буду очень признателен за помощь в том, что бы разобраться, что именно я сделал не так.

Добавлено: 06 янв 2014, 02:41
Максим
Файлы .nxaccess уже как 100 лет не используются. Нужно использовать отдельный шаблон хоста, как это делать написано в руководстве пользователя.

Добавлено: 06 янв 2014, 23:41
jorgas
Максим писал(а):Файлы .nxaccess уже как 100 лет не используются. Нужно использовать отдельный шаблон хоста, как это делать написано в руководстве пользователя.
Спасибо, понял.

Сделал все по инструкции - файл конфига заработал.
Чистые ссылки включил путем добавления к существующей скеции
location / {
    location / {
    root   "%hostdir%";
    index  index.php index.html index.htm;
}
строки с такой директивой
try_files $uri $uri/ /index.php?q=$request_uri;

Добавлено: 29 июл 2014, 08:31
ruw
Сделал все по инструкции - файл конфига заработал.
Чистые ссылки включил путем добавления к существующей скеции
location / {
    location / {
    root   "%hostdir%";
    index  index.php index.html index.htm;
}
строки с такой директивой
try_files $uri $uri/ /index.php?q=$request_uri;
Этого недостаточно, лучше сделать так, чтобы работали все параметры запроса:
location / {
    root   "%hostdir%";
    index  index.php index.html index.htm;
    try_files $uri @rewrite;
    #try_files $uri $uri/ /index.php?q=$request_uri;
}

location @rewrite {
	# You have 2 options here
	# For D7 and above:
	# Clean URLs are handled in drupal_environment_initialize().
	rewrite ^ /index.php;
	# For Drupal 6 and bwlow:
	# Some modules enforce no slash (/) at the end of the URL
	# Else this rewrite block wouldn't be needed (GlobalRedirect)
	#rewrite ^/(.*)$ /index.php?q=$1;
}


# Fighting with Styles? This little gem is amazing.
# This is for D6
#location ~ ^/sites/.*/files/imagecache/ {
# This is for D7 and D8
location ~ ^/sites/.*/files/styles/ {
	try_files $uri @rewrite;
}