अब तक मैं इस किया है:उपयोगकर्ता के अनुकूल यूआरएल आधुनिक पुनर्लेखन और php पुनर्निर्देशन
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?load=$1 [QSA,L]
तब मेरे अनुक्रमणिका पृष्ठ पर (रूट निर्देशिका में) मैं PHP का उपयोग कर रहा निर्धारित करने के लिए लोड करने के लिए जो पेज
:
// Swap to variables
$load = $_GET['load'];
// Home page
if (!$load || $load == "") { include('home.php'); exit(); }
// Dashboard
if ($load == "dashboard") { include('dashboard.php'); exit(); }
// About
if ($load == "about") { include('about.php'); exit(); }
// Username
$data_array = array(':username' => $load);
$select_account = $connect->prepare("SELECT * FROM `users` WHERE `username` = :username");
$select_account-> execute($data_array);
$account_amount = $select_account->rowCount();
if ($account_amount > 0) { include('profile.php?name=$load'); exit(); }
// Redirect to 404 if there are no results
include('404.php'); exit();
सब कुछ अब तक काम कर रहा है, लेकिन उपयोगकर्ताओं को एक गैलरी में फ़ोटो अपलोड कर सकते हैं और मैं चाहता हूँ उन्हें इतनी तरह देखा जाना चाहिए:
www.mysite.com/[username]/gallery/
लेकिन अगर आप इसे यूआरएल के रूप में टाइप करना चाहते थे, रीराइट [username]/gallery/
को एक सेक्शन के रूप में पढ़ता है जिसका अर्थ है $load = [username]/gallery
जो मुझे '404' देगा।
वांछित परिणाम प्राप्त करने के लिए शायद एक बेहतर समाधान है लेकिन मैं .htaccess और पुनर्लेखन के साथ बहुत अच्छा नहीं हूं। मैं जोड़ने के लिए है कि मैं इस पुनर्लेखन भी पसंद है के बाद से मैं एक उप-निर्देशिका signup
और signin
जो दोनों भी उन में एक उप-निर्देशिका है कहा जाता है चाहते हैं, लेकिन अगर मैं URL पर जाएगा:
www.mysite.com/signup
www.mysite.com/signin
यह फिर से लिखने पर ध्यान नहीं देता और $load
कथन के माध्यम से इसे चलाने के बजाय निर्देशिका में जाता है जो मैं चाहता हूं।
ही, ध्यान दें करने के लिए, कोई खाता पंजीकरण पर है, जो तार इस तरह के dashboard
या about
आदि के रूप में यह उन्हें इसका इस्तेमाल करने की अनुमति नहीं है मेल खाने वाले किसी उपयोगकर्ता नाम, इस उपयोगकर्ता नाम और $load
करना बंद कर दे/किसी और बयानों और उनके मिलाया जा रहा है शामिल
संपादित
एक और बात मैं नोट करना भूल गया है क्योंकि वे गैलरी जो कुछ भी वे पसंद कॉल कर सकते हैं, यह एक खोज करने के लिए करता है, तो यह है कि गैलरी में मौजूद है को देखने के लिए, उदाहरण के लिए इसलिए जरूरत है
www.mysite.com/username/my+first+album
इसे पहले उपयोगकर्ता नाम की जांच करने की आवश्यकता होगी, फिर एल्बम मौजूद है, फिर इसे प्रदर्शित करें या 404/यदि कहीं भी रीडायरेक्ट न हो तो इसे प्रदर्शित करें। तो मूल रूप से, दोनों पैरामीटर/प्रश्न गतिशील होंगे। इतना ही नहीं, लेकिन फिर उस एलबम के भीतर अलग-अलग तस्वीरें, एक ही काम करने के लिए उदाहरण के लिए की जरूरत है:
www.mysite.com/username/my+first+album/my+picture
मुझे आशा है कि समझ में आता है ...
मैंने इस यूआरएल रूटिंग पर थोड़ा सा देखा है, इससे पहले कभी नहीं सुना है, लेकिन मैं इसके बिट्स का उपयोग करने के साथ-साथ आप और सैली दोनों ने जवाब देने के कुछ अच्छे विचारों के साथ आ गया है । मैं यह दिखाने के लिए एक जवाब में लिख रहा हूं कि मुझे चीजें कैसे चल रही हैं। आपकी मदद के लिए +1! – Joe