2012-09-01 14 views
5

के साथ चर में स्लेश के बाद टेक्स्ट चालू करें मुझे URL के साथ 3 चर पारित करने की आवश्यकता है लेकिन स्लेश का उपयोग करना है। उदाहरण के लिए मैं इस URL का उपयोग करेंगे:HTACCESS

http://www.example.com/variable1/variable2/variable3

मैं अपने htaccess में यह है जो पाठ के बाद पहले चर पारित होने के लिए, लेकिन मैं अन्य दो के माध्यम से आने के लिए नहीं मिल सकता है की अनुमति देता है, भले ही मैं & जोड़ने $ 2

<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule /?([A-Za-z0-9_-]+)/?$ process.php?width=$1&height=$2 [QSA,L] 

भी लिंक या मदद बहुत अच्छा होगा

उत्तर

5

आप केवल कैप्टन हैं आपके पुनः लिखने के नियम में एक चर।

RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L] 

या थोड़ा कम:

RewriteRule ^([\w-]+)/([\w-]+)/([\w-]+)/?$ process.php?width=$1&height=$2&third=$3 [QSA,L] 

(\w शब्द चरित्र अक्षर, अंक भी शामिल है और रेखांकित)

मैं केवल बना दिया है

आप की तरह कुछ की जरूरत है स्लैश वैकल्पिक समाप्त हो रहा है, इसलिए यह पुनः लिखने वाला नियम केवल तभी कुछ करेगा जब बिल्कुल 3 चर होते हैं।

+0

@Fraggy मैं सामान्य रूप से उस के लिए कई पुनर्लेखन नियम है, तो पहले 3 वार्स के साथ शासन, तो 2 के साथ शासन और फिर नियम केवल 1. साथ तुम भी वैकल्पिक चर लगा सकता है का उपयोग करें नेस्टेड गैर-कैप्चरिंग कंस्ट्रैसिस में। – jeroen

6

आप यह आसान .php फ़ाइल में पैरामीटर हड़पने के लिए मिल सकती है, के माध्यम से:

http://www.example.com/variable1/variable2/variable3

वापसी होगी:

$pathinfo = isset($_SERVER['PATH_INFO']) 
    ? $_SERVER['PATH_INFO'] 
    : $_SERVER['REDIRECT_URL']; 

$params = preg_split('|/|', $pathinfo, -1, PREG_SPLIT_NO_EMPTY); 

echo "<pre>"; 
print_r($params); 

तो इस के साथ स्क्रिप्ट बुला

Array 
(
    [0] => variable1 
    [1] => variable2 
    [2] => variable3 
) 

यह दोनों के लिए काम करेगा:

http://www.example.com/variable1/variable2/variable3 और http://www.example.com/process.php/variable1/variable2/variable3