मेरे पास एक वेबसाइट है जिसे मूल रूप से क्लासिक एएसपी का उपयोग करके बनाया गया था। लगभग एक साल पहले यह PHP में फिर से लिखा गया था। इससे फ़ाइल एक्सटेंशन बदल गए और कुछ पृष्ठ वेबसाइट के नए स्थानों पर चले गए। स्वाभाविक रूप से हमने पुराने URL से नए URL में 301 रीडायरेक्ट किए, ताकि उनके उपयोगकर्ता और खोज इंजन अपने नए स्थान पा सकें। यह ठीक काम करता है।
हमने उन्हें एक उपकरण भी बनाया है जो साइट के मालिक को अपने छोटे URL बनाने की अनुमति देता है, जो Google Analytics अभियान पर नज़र रखने वाले चरों के साथ एक पृष्ठ पर पुनर्निर्देशित करता है जो URL में शामिल हैं ताकि वे अभियान को ट्रैक कर सकें और देखें कि यह कैसा प्रदर्शन करता है।
मेरे पास जो मुद्दा है, वह अभियान ट्रैकिंग नियम 301 रीडायरेक्ट के साथ संघर्ष करता है और रीडायरेक्ट को बिल्कुल भी काम करने से रोकता है।
यहां अभियान ट्रैकिंग कोड दिया गया है:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /tracking.php?$1 [R=301,L]
जैसा कि आप देख सकते हैं कि यह देखने के लिए कि क्या कोई फ़ाइल मौजूद है और यदि यह ट्रैकिंग स्क्रिप्ट (ट्रैकिंग.php) पर पुनर्निर्देशित नहीं करता है, तो वह ट्रैकिंग कोड लेता है और क्वेरी में Google Analytics अभियान कोड के साथ उचित URL पर पुनर्निर्देशित करता है स्ट्रिंग।
यह कोड विफल होने के लिए इस तरह के नियमों का कारण बनता है:
redirect 301 /about.asp /about.php
redirect 301 /capabilities.asp /capabilities.php
redirect 301 /capacitors.asp /capacitors.php
यह समझ में आता है कि यह एक साथ काम नहीं करता है क्योंकि ट्रैकिंग नियम कहते हैं, "अगर कोई फ़ाइल ट्रैकिंग के लिए पुनर्निर्देशित नहीं हुई है।" 301 रनडायरेक्ट्स को पहले चलाने के लिए मुझे जो चाहिए वह है, और यदि उनमें से कोई भी मैच नहीं करता है, तो ट्रैकिंग स्क्रिप्ट पर रीडायरेक्ट करें। 301 रीडायरेक्ट के नीचे ट्रैकिंग नियम रखने से परिणाम नहीं बदलते हैं।
क्या इसे .htaccess के माध्यम से किया जा सकता है? या क्या मुझे ट्रैकिंग स्क्रिप्ट को संशोधित करने की आवश्यकता होगी ताकि यदि कोई अभियान नहीं मिलता है, तो यह देखने के लिए जांच करे कि क्या अभियान आईडी वास्तव में एक पुराना पृष्ठ है जिसे पुनर्निर्देशित करने की आवश्यकता है और फिर वहाँ से 301 पुनर्निर्देशित करें?