2013-04-10 4 views
6

ठीक है इसलिए मैंने अपनी वेबसाइट में यूआरएल दोबारा लिखा है, अब किसी कारण से, अगर मैं डोमिनियन टाइप करता हूं तो यह 404 त्रुटि फेंक रहा है। कॉम, सब कुछ ठीक काम करता है।यूआरएल www.domain.com को मेरे पृष्ठ पर 404 का कारण बताएं

DirectoryIndex home.php 

IndexIgnore * 
#RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] 
#RewriteRule ^(.*)$ http://%1/directory/$1 [L,R=301] 

RewriteRule ^home/?$ home.php [NC] 
RewriteRule ^about/?$ about.php [NC] 

RewriteRule ^404/?$ 404.php [NC] 

ErrorDocument 404 http://domain.com/directory/404 

नोट: मैं 1 2 पुनर्लेखन नियम टिप्पणी की है यहां तक ​​कि अगर के रूप में मैं उन्हें बदलने यह सर्वर से .htaccess अपलोड करने के बाद प्रभावित नहीं करता, लगता है जैसे यह कैश की गई है।

अतिरिक्त जानकारी, <base> टैग का उपयोग कर रहा embeds.php

if($_SERVER['REMOTE_ADDR'] == '::1') { 
    echo '<base href="http://localhost/projects/directory/" />'; 
} else { 
    echo '<base href="http://domain.com/directory/" />'; 
} 

निर्देशिका संरचना है

Root - 
    home.php 
    about.php 
    -stylesheets 
     default.css 
    -includes 
     embeds.php 
    404.php 
    .htaccess 

embeds.phpशामिल home.php में, about.php आदि, और शैली, लिपियों आदि, inshort में है जो हेड सेक्शन <base> टैगमें हैं

+0

की चर्चा करते हुए मदद कर सकता है कुछ उपयोगी लिंक कैशिंग था यहाँ था क्या ['apache rewrite log'] में है (http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog)? क्या यूआरएल बदल जाता है? – Vyktor

+0

@Vyktor जहां मुझे एक लॉग फ़ाइल मिल सकती है? और सबकुछ ठीक काम करता है लेकिन अगर मेरे पास यूआरएल में 'www.' है तो यह गड़बड़ हो जाता है, और इसलिए मैंने www से छुटकारा पाने के लिए उन 2 नियमों का उपयोग किया, लेकिन अब मैं ऐसा करने में सक्षम नहीं हूं क्योंकि यह 2 नहीं बदल रहा है नियम, आराम करें अगर मैं htaccess संपादित करता हूं और अपलोड करता हूं इसे अपलोड करता है लेकिन पहले 2 नियम –

+0

यह आपके वेबसर्वर की सेटिंग्स पर निर्भर करता है, तो आपको इसे फिर से कॉन्फ़िगर करना पड़ सकता है (या उम्मीद है कि 'रीवाइटेलॉग' (पिछली टिप्पणी में यूआरएल देखें) आप कॉन्फ़िगरेशन जोड़ सकते हैं '.htaccess')। – Vyktor

उत्तर

1
RewriteCond %{HTTP_HOST} ^domain.com$ 
RewriteRule ^(.*) http://www.domain.com/$1 [QSA,L,R=301] 

यह काम करना चाहिए, अगर यह dosn't यह अपने DNS, या vhost विन्यास से आता है।

+0

अगर मैं –

+0

+1 और एक टिक के साथ www टाइप करता हूं, तो यह अभी भी 404 पर रीडायरेक्ट करता है, यह www के साथ-साथ www के बिना भी काम करता है: डी भयानक और बीटीडब्ल्यू मुद्दा फ़ायरफ़ॉक्स था, और जैसा कि मैंने पहले से ही '.htaccess' के कैशिंग का उल्लेख किया है, यह उत्तर यहां http: // stackoverflow.com/प्रश्न/4499541/htaccess-file-anyhow-being-cached' नाइट्रो की मदद करता है, मैंने क्रोम और इसका उपयोग किया काम किया, सभी को धन्यवाद –

संबंधित मुद्दे