जिस साइट के लिए मुझे इसकी आवश्यकता है वह एक वर्डप्रेस साइट है,

मूल रूप से my /out/ फोल्डर के बाद पार्टनर का url आता है। मैं चाहता हूं कि लोग उस यूआरएल पर अग्रेषित करने के लिए ऐसे लिंक पर जाएं, मुझे पता है कि इस मैनुअल को करने के लिए प्लगइन्स हैं, लेकिन मुझे हजारों यूआरएल की आवश्यकता होगी, इसलिए मैं मूल रूप से इसे वाइल्डकार्ड के साथ करना चाहता हूं

क्या PHP के साथ ऐसा करना संभव है?

https://example.com/out/https://externaldomain.com
should go to https:// externaldomain.com

यह हिस्सा बदल जाएगा, लेकिन हमेशा एक यूआरएल है:

https://example.com/out/*  https:// externaldomain.com  *  

तो मूल रूप से "https:// example.com/out/" गायब हो जाना चाहिए, केवल * https:// externaldomain.com * भाग छोड़कर

अगर कोई मुझे सही दिशा में इंगित कर सकता है तो यह बहुत अच्छा होगा

(मैंने मूल रूप से इस प्रश्न को एचटीएसीएसी के साथ करने के विचार से पूछा था, लेकिन मेरा मानना ​​​​है कि ऐसा करना संभव नहीं है जैसा मैं चाहता हूं)

0
Phpnewb 12 अगस्त 2019, 23:32

1 उत्तर

सबसे बढ़िया उत्तर

AltoRouter PHP (5.3+) में लिखी गई एक रूटिंग क्लास है
आप इसे यहां अपने लाभ के लिए उपयोग कर सकते हैं, यह विचार बनाने के लिए वास्तव में उपयोगी है। यह file.php?=%URL% का उपयोग किए बिना है, लेकिन आपको /out/https://example.com का उपयोग करने की अनुमति देता है।

index.php

<?php 

require("AltoRouter.php");

$router = new AltoRouter();

/* Routes */
/* $router->map(Method, Route , Target , Name) */

$router->map('GET|POST','/out/[*:url]', 'file.php', 'out');

/* Match route */
$match = $router->match();

/* Check if there is a match */
if($match) {
  header("HTTP/1.1 200 OK");
  require $match['target'];
} else {
  header("HTTP/1.0 404 Not Found");
  echo "Error 404";
}

?>

फिर, आपको एक और फ़ाइल की आवश्यकता होगी, आप इसे कुछ भी नाम दे सकते हैं, बस सुनिश्चित करें कि फ़ाइल का नाम आपके राउटर मैप में लक्ष्य से मेल खाता है।

file.php

<?php

/* Get the URL we need to redirect to */
$url = $match["params"]["url"];

/* Redirect to the URL */
header("location: $url");

/* Exit to prevent any further processing */
die();

?>

जहाँ तक मैं बता सकता हूँ, केवल htaccess का उपयोग करना ठीक से काम नहीं करेगा। AltoRouter का उपयोग करने के लिए, आपको अपनी htaccess फ़ाइल में निम्नलिखित जोड़ना होगा:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

इन सभी फाइलों को आपके वेबसर्वर की रूट डायरेक्टरी में जाने की जरूरत है। यदि आप सुनिश्चित नहीं हैं, तो यह आमतौर पर public_html फ़ोल्डर के अंदर होता है, लेकिन यदि आप इसे नहीं ढूंढ पा रहे हैं, तो अपने होस्टिंग प्रदाता से संपर्क करें।

2
FluxCoder 13 अगस्त 2019, 00:10