[英]Htaccess Rewrite Rule Conditional
當談到 .htaccess 文件時,我是一個完全的菜鳥......我要做的是檢查 GET 變量是否存在, ?si=10
,並將其傳遞給重寫,但前提是它存在。
RewriteRule ^user/([^/\.]+)/?$ profile/index.php?name=$1
這樣,當我說website.com/user/Username/
時,它會在服務器上轉到website.com/profile/?name=Username
。 但是當我添加 do website.com/user/Account/?si=10
時,服務器沒有將si
變量傳遞到實際加載的頁面上。 知道我會怎么做嗎? 對不起,如果我措辭不好..
試試QSA 標志
RewriteRule ^user/([^/\.]+)/?$ profile/index.php?name=$1 [QSA]
從手冊...
當替換 URI 包含查詢字符串時,RewriteRule 的默認行為是丟棄現有的查詢字符串,並將其替換為新生成的查詢字符串。 使用 [QSA] 標志會合並查詢字符串。
你可以這樣做:
RewriteCond %{QUERY_STRING} ^si=([0-9]+)$ // replace regex as neccesary
RewriteRule ^user/([^/\.]+)/?$ profile/index.php?name=$1&si=%1
百分號 % 從 rewriteCond(s) 中引入一個或多個匹配項,您可以正常使用美元符號來處理來自 rewriteRule 的匹配項。 這使您可以完全控制查詢變量,但是是的,QSA 更簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.