VirtualDocumentRoot के साथ example.com को www.example.com पर पुनर्निर्देशित करें


1

मुझे Apache VirtualDocumentRoot के साथ कॉन्फ़िगर किया गया है और यह ठीक काम करता है:

UseCanonicalName Off
VirtualDocumentRoot /var/www/%0/app/www

लेकिन वर्तमान में प्रत्येक डोमेन के लिए मुझे 2 निर्देशिकाओं की आवश्यकता है:

यहाँ मेरा आवेदन कर रहे हैं

/var/www/example.com/app/www

अन्य निर्देशिका में केवल .htaccessexample.com पर पुनर्निर्देशन शामिल है

/var/www/www.example.com/app/www

मेरा सवाल यह है: क्या कोई तरीका है जिससे मैं प्रत्येक www को उपसर्गित डोमेन को गैर-www समकक्ष पर स्वचालित रूप से पुनर्निर्देशित कर सकता हूं?

जवाबों:


1

ठीक है, यह एक पुराना सवाल है, लेकिन जब से मैंने इसे Google पर पाया है, तो अन्य लोग यहां भी समाप्त हो सकते हैं और उन भावी आगंतुकों को समस्या का एक अलग समाधान क्यों नहीं दे सकते हैं? (हालांकि यह तकनीकी रूप से ओपी प्रश्न का उत्तर नहीं है क्योंकि आपने पुनर्निर्देशन के लिए कहा था, लेकिन मुझे लगता है कि यह आपकी समस्या को हल करता है)

आप जो चाहते हैं, उसके आधार पर:

1) क्या डोमेन के लिए सब कुछ एक ही डायरेक्टरी में है: example.com www.example.com foo.example.com सभी /var/www/example.com/app/www पर जाएँ

<VirtualHost *:80>
    ServerName catch.all
    ServerAlias *
    VirtualDocumentRoot /var/www/%-2.0.%-1.0/app/www
</VirtualHost>

2) एक निर्देशिका संरचना जैसे / var / www / [डोमेन] / [उपडोमेन] दोनों example.com और www.example.com /var/www/example.com/www पर जाएँ और shop.example.com परोसी जाएगी /var/www/example.com/shop से

<VirtualHost *:80>
    ServerName sub.domain
    ServerAlias *.*.*
    VirtualDocumentRoot /var/www/%-2.0.%-1.0/%-3
</VirtualHost>

<VirtualHost *:80>
    ServerName bare.domain
    ServerAlias *.*
    VirtualDocumentRoot /var/www/%-2.0.%-1.0/www
</VirtualHost>

नोट: www को उपडोमेन नियम द्वारा परोसा जाएगा। और गैर-मौजूदा उपडोमेन का परिणाम 404 होगा।


0

ठीक है, इस तरह के रीडायरेक्ट को जोड़ना बहुत आसान है, बस सर्वर-वाइड रीराइट नियम को जोड़ना होगा।

Virtualhost का मेरा अंतिम विन्यास ऐसा लगता है

<VirtualHost *:80>
    UseCanonicalName Off
    VirtualDocumentRoot /var/www/%0/app/www
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1$1 [R=301,L]
    <Directory /var/www/%0/app/www>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
... other options
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.