2013-03-27 2 views
0

У меня была установка https://github.com/lencioni/SLIR на appache. Он имеет файл htaccess и работает очень хорошо. Теперь я переехал в Nginx и хочу, чтобы работа SLIR была одинаковой. Ниже я хочу конвертировать.

# Prevent other scripts from interfering with SLIR 
php_value auto_prepend_file none 
php_value auto_append_file none 

# Pretty URLs 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [S=40] 
RewriteRule . index.php [L] 
</IfModule> 

# Prevent viewing of the error log file in its default location 
<Files slir-error-log> 
Order Deny,Allow 
Deny from All 
</Files> 

Я был в состоянии преобразовать все, кроме строки ниже

RewriteRule ^.*$ - [S=40] 

Любые идеи? Благодаря

+0

Это лучше задать этот вопрос на superuser.com –

ответ

1

Попробуйте это:

if (!-f $request_filename) { rewrite ^.*$ /index.php last; } # check for file 
if (!-d $request_filename) { rewrite ^.*$ /index.php last; } # check for dir 

EDIT проверено на моем сервере - это одна линия работает для обоих, (реж и файл)

if (!-e $request_filename) { rewrite ^(.+)$ /index.php last; } 
0

Флаг S говорит mod_rewrite, чтобы пропустить некоторое количество следующих правил (в вашем случае, это). Вы также можете изменить свои правила:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php [L] 

Может быть проще в обращении.