दिलचस्प पोस्ट
जावा का उपयोग कर वर्तमान मशीन का आईपी पता प्राप्त करना दिनांक पिकर में दिनांक स्वरूप (एमएम / डीडी / वाई वाई) (वाई वाई वाई-एमएम-डीडी) को कैसे बदलना है Websocket सर्वर: वेब सॉकेट पर ओपन फ़ंक्शन पर कभी भी कॉल नहीं किया जाता है असंगत पहुंच: पैरामीटर प्रकार विधि से कम सुलभ है कुछ डेवलपर्स के लिए अच्छा UI डिज़ाइन इतना कठिन क्यों है? एप्लिकेशन लॉन्च के अंत में अनुप्रयोगों को रूट व्यू नियंत्रक होने की उम्मीद है जावास्क्रिप्ट नोडलिस्ट क्या यह बढ़ावा देने के लिए स्मार्ट है: थ्रेड और बढ़ावा :: म्यूटक्स सी ++ 11 समकक्ष के साथ? सी + + प्रीप्रोसेसर # एक कीवर्ड को परिभाषित करना। क्या यह मानक मानता है? क्या const_cast सुरक्षित है? मैं JSON में न्यूलाइन कैसे प्रबंधित करूं? ट्री डेटा संरचना के लिए डेटाबेस संरचना विंडोज़होओक्यू रन रेक डीबी: माइग्रेट एरर "/ usr / bin / env: ruby.exe: ऐसी कोई फ़ाइल या निर्देशिका नहीं" कैसे ठीक से jsPDF पुस्तकालय का उपयोग करें Angular.js में एक AJAX कॉल करने के लिए सबसे अच्छा अभ्यास क्या है?

PHP में URL फिर से लिखना कैसे करें?

मैं अपने PHP अनुप्रयोग में यूआरएल पुन: लिखना को लागू करने की कोशिश कर रहा हूं। क्या कोई PHP और MySQL में यूआरएल पुन: लिखने के क्रियान्वयन की प्रक्रिया को चरणबद्ध कर सकता है?

मेरे आवेदन में मैं निम्नलिखित यूआरएल पुन: लिखना को लागू करना चाहता हूं, मैं रीडायरेक्ट करना चाहता हूं

1. http://example.com/videos/play/google-io-2009-wave-intro 2. http://example.com/videos/play/203/google-io-2009-wave-intro 

सेवा मेरे

 1. http://example.com/videos/play.php?title=google-io-2009-wave-intro 2. http://example.com/videos/play.php?id=203 

कृपया मुझे बताएं कि उपर्युक्त किसी भी तरीके से यूआरएल दोबारा लिखना कैसे लागू किया जाए।

एक और चीज़ जो यूआरएल एसईओ, प्रबंधन, अनुप्रयोग के अनुसार सबसे अच्छा होगा निम्नलिखित दो प्रकारों के बाहर बिंदु का दृश्य।

 1. http://example.com/videos/play/google-io-2009-wave-intro 2. http://example.com/videos/play/203/google-io-2009-wave-intro 

वेब के समाधान से एकत्रित समाधान "PHP में URL फिर से लिखना कैसे करें?"

Mod_rewrite के लिए एक शुरुआती गाइड ।

आमतौर पर यह mod_rewrite मॉड्यूल को सक्षम करने से अधिक कुछ नहीं होगा (आप संभवतः पहले से ही अपने होस्ट के साथ सक्षम हैं), और फिर अपनी वेब निर्देशिका में एक .htaccess फ़ाइल को जोड़ने। एक बार जब आप ऐसा कर लेंगे, तो आप केवल कुछ पंक्तियां दूर होने के बाद ही कर सकते हैं। उपर्युक्त ट्यूटोरियल आपकी देखभाल करेगा

बस मस्ती के लिए, यहाँ एक Kohana है । Rewriting के लिए। Htaccess फ़ाइल:

 # Turn on URL rewriting RewriteEngine On # Installation directory RewriteBase /rootDir/ # Protect application and system files from being viewed RewriteRule ^(application|modules|system) - [F,L] # Allow any files or directories that exist to be displayed directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Rewrite all other URLs to index.php/ RewriteRule .* index.php/$0 [PT,L] 

यह क्या करेगा और सभी अनुरोधों को लेता है और उन्हें index.php फ़ाइल के माध्यम से चैनल के अंतर्गत आता है। इसलिए यदि आप http://www.examplesite.com/subjects/php पर गए हैं, तो आप वास्तव में http://www.examplesite.com/index.php?a=subjects&b=php पर जा सकते हैं।

यदि आपको ये यूआरएल आकर्षक लगते हैं, तो मैं आपको एक कदम आगे बढ़ने और एमवीसी फ्रेमवर्क (मॉडल, दृश्य, नियंत्रक) की जांच करने के लिए प्रोत्साहित करता हूं। यह अनिवार्य रूप से आपको आपकी वेबसाइट के कार्यों के एक समूह की तरह व्यवहार करने की अनुमति देता है:

http://www.mysite.com/jokes

 public function jokes ($page = 1) { # Show Joke Page (Defaults to page 1) } 

या, http://www.mysite.com/jokes/2

 public function jokes ($page = 1) { # Show Page 2 of Jokes (Page 2 because of our different URL) } 

ध्यान दें कि पहला फ़ॉरवर्ड स्लैश एक फ़ंक्शन कहता है, और सभी उस फ़ंक्शन के पैरामीटर को भरने के लिए अनुसरण करते हैं। यह वास्तव में बहुत अच्छा है, और वेब-विकास को और अधिक मज़ेदार बनाओ!

आप ऐसा अकेले PHP के साथ नहीं कर सकते आपको mod_rewrite (मान लें कि आप अपाचे का उपयोग कर रहे हैं) की जांच करनी होगी।

आधुनिक पुनर्लेखन का उपयोग करना:

 RewriteRule ^videos/play/([0-9]+)/([^.]+)$ play.php?id=$1&name=$2 

example.com/play.php?id=203&name=google-io-2009-wave-intro

के रूप में काम करेगा

example.com/videos/play/203/google-io-2009-wave-intro

ध्यान रखें कि रीडायरेक्टिंग रीसाइटिंग के समान नहीं है।

एक रीडायरेक्ट तब होता है जब सर्वर अनुरोध प्राप्त करता है और प्रतिक्रिया को रीडायरेक्ट के रूप में भेजा जाता है। उदाहरण के लिए, आप एक पृष्ठ http://www.example.com/page का अनुरोध करते हैं जब सर्वर को यह प्राप्त होता है, तो पृष्ठ या सर्वर स्वयं को ब्राउज़र में एक रीडायरेक्ट कमांड का मुकाबला करता है। रीडायरेक्ट कमांड मूल रूप से कहते हैं "यहां जाएं: नया पृष्ठ" PHP में, यह हैडर के रूप में है ('स्थान: newpage.html');

एक पुनर्लेखन तब होता है जब सर्वर ब्राउज़र से अनुरोध प्राप्त करता है तो उस साइट के लिए नियमित अभिव्यक्तियों की एक सूची में दिखता है। अगर कोई मैच पाया जाता है, तो यूआरएल उस रूप में फिर से लिखा जाता है और तदनुसार जवाब दिया जाता है। उदाहरण के लिए, http://www.example.com/specificpage अनुरोधित यूआरएल http://www.example.com/?loadpage=specificpage पर फिर से लिखा जा सकता है (सर्वर के अंत में)। ब्राउज़र को हेडर सूचना प्राप्त नहीं होती है कि यह कहीं और जाना चाहिए।

यदि आपका सर्वर इसका समर्थन करता है (एपाचे / मोड_क्र्राइट), तो आप विज़िटर को पुनः निर्देशित करने के लिए .htaccess फ़ाइल का उपयोग कर सकते हैं।

कुछ ऐसा है (बस एक मसौदा, अपनी खुद की जरूरतों के अनुरूप …):

 RewriteEngine On RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)/([0-9]+)/([-0-9a-zA-Z]+)/?$ /$1/$2.php?id=$3 [L] 

दूसरे उदाहरण के लिए

आपको विस्तृत विवरण देने के बारे में क्षमा करें, लेकिन हो सकता है कि आप डॉक्युविक पर शुरुआती बिंदु के लिए एक नज़र डाल सकें।

इसके सेटअप में यह 3 मोड स्वीकार करता है:

  1. नियमित यूआरएल:? Id = zzz
  2. । htaccess फिर से लिखना: रीवाइटिंग करने के लिए अपाचे का उपयोग करता है
  3. आंतरिक (पीएचपी) पुनर्लेखन: यूआरएल http://www.example.com/kb/doku.php/start की तरह दिखते हैं

यह मुफ़्त है ताकि आप कोड डाउनलोड और ब्राउज़ कर सकें।

एक नोट के रूप में, अपाचे रीडायरेक्ट का सबसे अच्छा समाधान सबसे अच्छा समाधान है लेकिन शुद्ध PHP एक भी दिलचस्प है अगर आपका कोड IIS6 सर्वर पर चलने वाला है जहां रीराइटिंग एपाचे रूप में आसान नहीं है।

दुर्भाग्य से, यह वास्तव में वेब सर्वर पर है, PHP नहीं है अगर आप अपाचे या किसी अन्य चीज़ का उपयोग करते हैं, उसके आधार पर, आपकी स्क्रिप्ट निष्पादित होने से पहले इसे ऐसा करना होगा। मैं mod_rewrite का उपयोग करता हूं, और एक उदाहरण पुनर्लेखन नियम इस तरह दिखता है:

 <Directory "/home/www/html"> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/%{REQUEST_URI} [PT,L] </Directory> 

उपरोक्त नियम मूल रूप से कहता है कि यदि यूआरएल असली फाइल या निर्देशिका के लिए एक वैध पथ है, तो उसे लोड करें। अन्यथा, इसे index.php के माध्यम से चलाएं

टिप्पणियों को पढ़ने और एक बार फिर सवाल करने के बाद, मुझे एहसास हुआ है कि मेरा पिछला उत्तर पूरी तरह से आपके लिए नहीं है। तो यहां कुछ अतिरिक्त, यदि आप यूआरएल पतों को फिर से लिखना / रीडायरेक्ट / प्रॉक्सी चाहते हैं तो उदाहरण के लिए यूजर प्रकार http://www.f1.com वह वास्तव में http://www.f2.com देखेंगे, लेकिन डोमेन एक ही रहेगा, आपको संभवत: सेटअप करने की आवश्यकता है इसके लिए अपाचे का उपयोग करके रिवर्स प्रॉक्सी यह कार्य mod_rewrite के समान है।

दूसरे भाग के बारे में, चूंकि आधुनिक क्रॉलर भी यूआरएल लिंक्स का विश्लेषण करता है I think आपके पहले विकल्प का प्रदर्शन बेहतर है।

पिछला उत्तर:
और पीएचपी का प्रयोग करके आप पुनर्निर्देशन प्राप्त कर सकते हैं:

 <?php // Here you can parse the current location // and decide whenever you want to go // if $_SERVER[ 'PHP_SELF'] some conditions then.... header('Location: http://www.example.com/'); ?> 

Php.net से यहां अधिक उदाहरण

आप ऊपर दिए गए सुझावों से ऊपर दिए गए सुझावों से एक फ्रंट नियंत्रक का उपयोग करके इस पर संपर्क कर सकते हैं, यह कस्टम यूआरएल बनाने के लिए एक आम समाधान है और सभी भाषाओं में प्रयोग किया जाता है, न कि केवल PHP यहां एक मार्गदर्शिका है: http://www.oreillynet.com/pub/a/php/2004/07/08/front_controller.html

मूलतः आप प्रत्येक यूआरएल के लिए बुलाया जाता है एक इंडेक्स। पीएचपी फ़ाइल बनाते हैं, इसका काम यूआरएल को पार्स करना है और यूआरएल की सामग्री के आधार पर कोड को निर्धारित करना है इसलिए, उदाहरण के लिए उपयोगकर्ता यूआरएल का उपयोग करेगा जैसे कि http://example.com/index.php/videos/play/203/google-io-2009-wave-intro और index.php से शेष तत्व निकालेगा यूआरएल (/ वीडियो / प्ले / 203 / गुओ-आईओ -2009-लहर-परिचय) पहले भाग लेते हैं, उस नाम के साथ एक php फ़ाइल लोड करें (वीडियो.एफ़पी या आप इसे play.php का उपयोग कर सकते हैं) और पैरामीटर 203 और Google-IO

यह प्रभावी ढंग से mod_rewrite में कोड को दोबारा लिखते हुए एक ही चीज़ कर रहा है लेकिन इसमें कुछ लाभ हैं:

  1. यदि आप उस के लिए नए हैं, तो बहुत अधिक mod_rewrite कोड की आवश्यकता नहीं है
  2. आपको एक ही स्थान पर सभी सुरक्षा कोड डालने की अनुमति देता है – index.php में
  3. यूआरएल को बदलना और 404 आदि को संभालना आसान है।

आप mod_rewrite का उपयोग कर URL से index.php को निकाल सकते हैं, यहां देखें: http://www.wil-linssen.com/expressionengine-removing-indexphp/