2012-12-25 41 views
5

मैं एक AJAX सक्षम साइट चला रहा हूं जो HTML4 हैश और HTML5 pushstate() के लिए प्रदान करता है।httpd.conf और HTML5 pushstate()

मैं अभी एक एडब्ल्यूएस ईसी 2 इंस्टेंस (लिनक्स सर्वर चल रहा अपाचे) में माइग्रेट कर चुका हूं और दोनों साइट ठीक चल रही हैं।

एकमात्र मुद्दा मैंने अनुभव किया है जब मैं एक HTML4 हैश पेज को सही पृष्ठ दिखाता हूं।

enter image description here

ऐसा लगता है कि अपाचे फ़ोल्डर में जाने के लिए 'converstations' बल्कि तो बस साइट 'कहते हैं कोशिश कर रहा है:

हालांकि जब मैं http://www.datingjapan.co/conversations की तरह एक एचटीएमएल 5 पृष्ठ को रीफ्रेश मैं निम्न त्रुटि संदेश मिलता है index.php 'जो तब सही पेज लोड करने के लिए jquery का उपयोग कर रहा है।

कोई भी सलाह दे सकता है कि यहां क्या समस्या हो सकती है। मैं इसे httpd.conf सेटिंग्स मान रहा हूँ।

THX

+0

मुझे लगता है कि आपका मतलब है 'pushstate() '- [' popstate' एक ईवेंट है, फ़ंक्शन नहीं है] (https://developer.mozilla.org/en-US/docs/Mozilla_event_reference/popstate)। इसके अलावा "हैश टैग" इस संदर्भ में उचित नहीं है - यदि आप '#' हैश चरित्र के बाद यूआरएल के हिस्से का जिक्र कर रहे हैं, तो यह हैश है, हैश टैग नहीं है। –

+0

धन्यवाद आपने प्रश्न को अद्यतन किया .. – Adam

+0

आपका बहुत स्वागत है। मैंने अपना जवाब अपडेट कर दिया है: 'उपनाम' जाने का रास्ता नहीं है। –

उत्तर

4

:

<IfModule mod_rewrite.c> 
   RewriteEngine on 
   RewriteCond %{HTTP_HOST} !^(www\.).+$ [NC] 
   RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] 

   RewriteCond %{REQUEST_FILENAME} !-f 
   RewriteCond %{REQUEST_FILENAME} !-d 
   RewriteCond %{REQUEST_FILENAME} !-l 
   RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

मूल रूप से इस www को गैर- www से सभी अनुरोध रीडायरेक्ट करेगा और उसके बाद इसकी नहीं एक फ़ाइल या एक निर्देशिका यह index.php फाइल करने के लिए अनुरोध अग्रेषित करेगा।

+1

पूरी तरह से काम किया - वेबसाइट में डाल दिया। Htaccess - बहुत सराहना की ... – Adam

+0

ध्यान दें कि यदि आप इन निर्देशों को .htaccess के बजाय httpd.conf में डालते हैं, तो आपको उन्हें एक निर्देशिका टैग में रखना होगा, उदा। <निर्देशिका/var/www/html> – Aaron

3

मैं pushState() अपने आप उपयोग नहीं किया है, लेकिन अगर ब्राउज़र /conversations के लिए एक अनुरोध भेज रहा है www.datingjapan.co, तो अपाचे वास्तव में एक फ़ाइल या फ़ोल्डर में "वार्ता" कहा जाता है के लिए दिखेगा अपने दस्तावेज़ रूट, जब तक कि आप इसे कुछ अलग करने के लिए न कहें।

आप एक index.php फ़ाइल द्वारा नियंत्रित किया जा करने के लिए www.datingjapan.co के सभी URL चाहते हैं, तो आप अपने अपाचे सेटिंग्स में the AliasMatch directive उपयोग कर सकते हैं फ़ाइल:

AliasMatch ^.*$ /index.php 

मुझे लगता है कि इस परिणाम होगा index.php द्वारा प्रबंधित किए जा रहे सभी यूआरएल में। आप अपने .htaccess फ़ाइल में इस करके देख सकते हैं आप बूटस्ट्रैप के कुछ प्रकार के रूप में एक index.php फ़ाइल का उपयोग करने की कोशिश कर रहे हैं (मैं अपाचे विन्यास पर बहुत गर्म हालांकि नहीं हूँ, इसलिए मैं गलत हो सकता है।)