Чистые ссылки в nginx
Привет всем!
Такая проблема. Использую nginx как фронт-энд к Апачу для отдачи статики, поэтому приходится под все сайты переписывать правила чистых ссылок. Вордпресс, например, работает безо всяких манипуляций, для Друпала нужны небольшие правки виртуального хоста, а вот c livestreet даже не знаю как подступится. При клике на ссылки блогов и юзеров выскакивает 404.
Насколько я понимаю, надо переписать следующие правила из .htaccess под nginx:
и все должно заработать. Но вот как раз с переписыванием у меня и проблема :) Если кто разбирается, плиз хэлп!
Такая проблема. Использую nginx как фронт-энд к Апачу для отдачи статики, поэтому приходится под все сайты переписывать правила чистых ссылок. Вордпресс, например, работает безо всяких манипуляций, для Друпала нужны небольшие правки виртуального хоста, а вот c livestreet даже не знаю как подступится. При клике на ссылки блогов и юзеров выскакивает 404.
Насколько я понимаю, надо переписать следующие правила из .htaccess под nginx:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php
и все должно заработать. Но вот как раз с переписыванием у меня и проблема :) Если кто разбирается, плиз хэлп!
20 комментариев
все просто:
location / {
root /path/to/your/webroot;
index index.php;
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php;
}
}
К слову, Nginx при прикручивании FastCGI к нему и сам скрипты неплохо выполняет:) не пожирая память, как это делает индеец
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php;
}
Надо делать так
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
тпштч настроен фронтендом для апача