2012-08-27 30 views
0

可能重複:
Access GET variables with PHP + .htaccesshtaccess的/ PHP的解決方案混編版網址

我試圖寫的.htaccess和PHP腳本的組合,請執行下列操作:

如果URL = http://mysite.com/XXXXXXX 重定向到http://mysite.com/subdir/index.php?var=XXXXXXX

其中XXXXXXX是任何字母數字字符串,長度不超過7個字符,不帶.php擴展名。

這是我到目前爲止,

RewriteEngine On 
RewriteRule ^(.*)$ index.php?code=$1 
RewriteRule ^subdir/(.*)$ index.php?code=$1 [L,QSA] 

任何幫助將不勝感激。

更新: 感謝您的回覆,鏈接幫助,但我認爲我在哪裏遇到麻煩是條件。

RewriteEngine On 
RewriteCondition [HAS 7 ALPHANUM CHARS] <--HERE 
RewriteRule ^(.*)$ /subdir/index.php?code=$1 [QSA,L] 
+0

什麼任何幫助嗎? – hakre

+0

@hakra:我不太確定這是這個問題的重複。它看起來像這裏的OP是試圖重新定向一個網段,這是字母數字字符串7個字符。尼克,你能再詳細一點嗎?這是你嘗試過的唯一的事情嗎?我在代碼中看不到任何內容,這表明您正在尋找7個alphanums。 –

+0

@WesleyMurch:然後建議一些其他問題作爲重複,所以我可能會看到你的意思。你不能問每個問題一次,可以用正則表達式mod_rewrite提供。 – hakre

回答

1

嘗試簡單:

RewriteEngine On 
RewriteRule (^|/)([a-z0-9]{7})/?$ index.php?code=$2 [L,QSA,NC] 

正則表達式(^|/)([a-z0-9]{7})/?$確保到URI的最後部分匹配,最後/後正好具有7數字/字母。

那麼這將匹配:

/123abcD 
/123abcD/ 
/something/098eif2 
/foo/bar/path/1q2w3rT 
+0

而且還通過'http:// example.com/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' - 不離開這個被忽視。 – hakre

+0

完美!這將爲我需要做的工作。我會讓PHP處理剩下的事情!謝謝! –

+0

@hakra你是對的,用'(^ | /)修復它' –