2012-05-31 12 views
11

पर यूआरएल-रीराइटिंग काम नहीं करता है। इस बार मैं केकेएफपी आज़माता हूं, लेकिन मुझे "यूआरएल रीराइटिंग आपके सर्वर पर ठीक से कॉन्फ़िगर नहीं किया गया है। 1) इसे कॉन्फ़िगर करने में मेरी सहायता करें 2) मैं यूआरएल रीराइटिंग का उपयोग नहीं कर सकता/सकती हूं। मुझे पता था कि यह apache और .htaccess मुद्दों जैसे/etc/apache2/sites-avaliable/default और प्रत्येक निर्देशिका है। Htaccess।केकफ़्पी उबंटू

मेरे विकास पर्यावरण ...

  • Ubuntu12.04 VMware fusion4 पर
  • apache2.2.22
  • mysql5.5
  • php5.3.10
  • cakephp2.1

मेरी प्रक्रिया का पालन किया जाता है ...

1) /etc/apache2/httpd.conf

<Directory /> 
Options FollowSymLinks 
AllowOverride All 
</Directory> 

2)

sudo a2enmod rewrite 
sudo service apache2 reload 

3) संपादन/etc/apache2/साइटों-उपलब्ध/डिफ़ॉल्ट (AllOverride कोई नहीं AllOverride सभी को mod_rewrite सक्षम करने)

<Directory /> 
Options FollowSymLinks 
AllowOverride All 
</Directory> 
<Directory /var/www> 
Options Indexes FollowSymLinks MultiViews 
AllowOverride All 
Order Allow,Deny 
Allow from all 
</Directory> 

prompt: sudo service apache2 reload 

4) संपादन या जाँच प्रत्येक .htaccess फाइल -> केक रूट निर्देशिका

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ app/webroot/ [L] 
    RewriteRule (.*) app/webroot/$1 [L] 
    </IfModule> 

-> अनुप्रयोग रूट निर्देशिका

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ webroot/ [L] 
    RewriteRule (.*) webroot/$1 [L] 
    </IfModule> 

-> webroot निर्देशिका

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php/$1 [QSA,L] 
</IfModule> 

यह समस्या हल हो गया है, धन्यवाद।

+1

परिभाषित करें 'काम नहीं करता' – Dunhamzzz

+1

मेरे लिए यह चाल है। sudo a2enmod rewrite && sudo service apache2 reload – mac

+0

मैंने चरण 1 को छोड़कर सबकुछ किया .. धन्यवाद ^^ " –

उत्तर

6

मुझे यह समस्या भी थी। को हटा देता है। Htaccess फ़ाइल केकपीएचपी स्रोत के साथ कॉपी नहीं हो रही थी। सीपी कमांड का उपयोग करते समय या फ़ाइल ब्राउज़र में दिखाई देने वाली छिपी हुई फाइलें नहीं होने पर यह एक आम समस्या है, जब तक कि आप शीर्ष-स्तरीय निर्देशिका की प्रतिलिपि न लें।

मेरे प्रोजेक्ट फ़ोल्डर में फ़ाइल की सीधी प्रतिलिपि करना मेरे अपाचे सेटिंग्स के साथ गड़बड़ किए बिना मेरे लिए तय किया गया है।

cp ~/git/cakePHP/.htaccess ~/project/folder/ 
-1

यह फ़ाइल अनुमति समस्या हो सकती है। दोनों वेबूट और टीएमपी निर्देशिकाओं के लिए 777 पर रिकर्सिव सेटिंग सेट करने का प्रयास करें। टीएमपी निर्देशिका में सूडो की आवश्यकता हो सकती है।

sudo chmod -R 777 /path/to/app/webroot/ 
sudo chmod -R 777 /path/to/app/tmp/ 
+0

उत्तर देने के लिए धन्यवाद। अनुमतियां पहले से ही ठीक हो चुकी हैं। –

+0

आप वेबूट को केवल 777 अनुमति नहीं दे सकते। इससे शून्य हो जाएगी सुरक्षा –

0

संभव missconfiguration:

चेक अगर फ़ाइल http://your_domain_name/css/cake.generic.css अपने ब्राउज़र से rechable है। आप रूट स्तर पर एक {HOME}/css निर्देशिका है, तो आप डिफ़ॉल्ट-मुखपृष्ठ

में चेतावनी मिल जाएगा यदि नहीं, तो UrlRewriting {HOME}/app/webroot/css/cake.generic.css करने के लिए http://your_domain_name/css/cake.generic.css अनुप्रेषित नहीं होंगे।

इस प्रकार सीएसएस-फ़ाइल नहीं मिलेगी, जिससे संदेश यूआरएल-रीराइटिंग ठीक से कॉन्फ़िगर नहीं किया गया है। (फ़ाइल ऐप/व्यू/पेज/होम सीपीटी देखें)

समाधान: पूरी तरह से {HOME}/css निर्देशिका को रूट-स्तर पर हटा दें। अपनी सीएसएस-फाइल {HOME}/app/webroot/css पर रखें।