我想這一定是一個常見的場景,但我很難充分描述它或找到一個可行的答案!
本質上,我想制作數百個包含唯一參考代碼但易于在表單中鍵入的 URL,這些 URLexample.com/aabbcc將被截獲并全部傳送到 PHP 腳本以驗證該代碼,位于類似example.com/script.php. 我需要 URL 的子目錄部分(在本例中為 aabbcc)成為該腳本的 GET 引數,因此將發送一個像上面這樣的 URL example.com/script.php?id=aabbcc,同時對用戶隱藏這個更復雜的 URL。
我可以從其他 .htaccess 示例中看到這一定是可能的,但我找不到這樣做的人。
有 .htaccess 解決方案嗎?還有其他更基本的東西嗎?感謝您在指導我方面的幫助。
uj5u.com熱心網友回復:
如果您的“唯一參考代碼”由 6 個小寫字母組成,如您的示例所示,那么您可以.htaccess使用 mod_rewrite 在根檔案中執行以下操作:
RewriteEngine
# Internally rewrite "/abcdef" to "script.php?id=abcdef"
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[a-z]{6}$ script.php?id=$0 [L]
如果您不需要直接訪問根目錄之外的任何子目錄也恰好匹配“唯一參考代碼”,那么您可以洗掉前面的條件(RewriteCond指令)。有了條件,您自然就無法訪問恰好也與子目錄名稱匹配的任何“唯一訪問代碼”。
$0是對RewriteRule 模式(第一個引數)匹配的整個 URL 路徑的反向參考。
參考
- Apache mod-rewrite 檔案 - 目錄
- Apache mod_rewrite 簡介
- Apache mod_rewrite 參考
RewriteRule指示RewriteCond指示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/448372.html
