2013-03-27 47 views
0

我在Appache上設置了https://github.com/lencioni/SLIR。它有一個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這個問題 – 2013-03-27 10:42:04

回答

1

試試這個:

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

編輯我的服務器上檢查 - 這一條線上同時適用於(DIR和文件)

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] 

可能更容易轉換。