簡體   English   中英

Htaccess 重寫規則條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM