2013-02-17 51 views
10

मैं अपने अपाचे के लिए निम्नलिखित .htaccess फाइल मिल गया है:nginx के लिए .htaccess परिवर्तित (mod_rewrite)

<IfModule mod_rewrite.c> 
 Options +FollowSymlinks  
# Options +SymLinksIfOwnerMatch 
 RewriteEngine On 
 RewriteBase/
 RewriteRule ^$          index.php       [L] 
 RewriteCond %{REQUEST_FILENAME}         !-f 
 RewriteCond %{REQUEST_FILENAME}         !-d 
 RewriteRule (.*)        index.php?page=$1  [QSA,L] 
</IfModule> 

अचानक मैं अपने वेब सर्वर को बदलने के लिए nginx करना पड़ा और यही कारण है मैं नहीं जानता, लेकिन mod rewrite काम नहीं कर रहा है।

मैं इसे परिवर्तित करने के लिए एक ऑनलाइन 'कनवर्टर' का इस्तेमाल किया है, इसलिए मैं निम्नलिखित है:

location/{ 
    rewrite ^/$/  index.php  break; 
    if ($request_filename ~   !-f){ 
    rewrite ^(.*)$/  index.php?page=$1 break; 
    } 
} 

क्या आप मेरी मदद कर सकते हैं कि क्या गलत है?

अग्रिम धन्यवाद, मार्सेल

+4

क्या बेवकूफ इस बंद कर दिया है? अपाचे से चलते समय mod rewrite नियमों को अद्यतन करना nginx साइट्स के अधिकांश के लिए आवश्यक नहीं है। – Sam

उत्तर

18

http://blog.martinfjordvald.com/2011/02/nginx-primer-2-from-apache-to-nginx/ सब कुछ अंदर है। और नहीं। Htaccess, कोई और जटिल नियम try_files का उपयोग नहीं करते हैं।

संपादित करें: और यदि यह स्पष्ट नहीं है, तो ऑनलाइन कनवर्टर्स पर भरोसा न करें।

0

$ sudo vim/etc/nginx/साइटों से उपलब्ध/डिफ़ॉल्ट

location/{ 
     try_files $uri $uri/ =404; 
    } 

location/{ 
    try_files $uri $uri/ /index.php?$args; 
}