我想重定向不會進入目錄的網址到一個腳本(例如script1.php)和具有到另一個腳本(script2.php)的類別的網址。基本上我想這樣做: http://www.test.com/user1 - >http://www.test.com/script1.php?username=user1其中script1.php獲取用戶名併爲該用戶提供適當的頁面。我有一部分與此代碼的工作:處理.htaccess使用不同的參數重定向?
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ script1.php?username=$1 [L,QSA]
現在的問題是,我也想有描述產品的網址,以便例如http://www.test.com/clothes/jackets/cool-red-jacket-25重定向到http://www.test.com/items.php?category=clothes&subcategory=jackets&id=25。我也有一些代碼,應該也是這樣的:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?([a-zA-Z-]+)/([a-zA-Z-]+)/.*-A([0-9-.]+)\.php$
script2.php?category=$1&subcategory=$2&id=$3 [L]
我遇到的問題是結合這兩種類型的重定向。第一次重定向總是重定向到自己的頁面,第二次重定向永遠不會到達。是否有可能將這兩種方式結合起來?基本上,我需要這個像這樣的事情htaccess的如果可能的話
if(!urlHasDirectories) {
redirect to script1.php?username=$username;
} else {
redirect to script2.php?category=$category&subcategory=subcategory&id=$id;
}
Chris $ 1表示第一個捕獲組的價值,但是$ 1在您的規則中未定義。 – starkeen
@Starkeen噢,忘了執行它,更多的是正則表達式的演示..我會更新,謝謝。 – chris85
@ chris85這就是我一直在尋找的!謝謝你的解釋,如果你能幫助我,我只需要一件事。我想從網址中提取該ID。假設url是http://...../jackets/cool-red-jacket-25,我如何在htaccess中提取25(這是產品ID,我需要它,以便我可以顯示確切的產品)?我嘗試使用這個「... /。* - A([0-9 - 。] +)$ script2.php?id = $ 1 [L,QSA]」,但它提取了整個字符串(cool-red- 25)。我可以在htaccess中完成它,還是應該獲取整個字符串並在腳本中提取ID? –