如果存在特殊引數,我正在嘗試重寫任何 URL。
所以發生這種情況:
從: www.example.com/somepage/someother/?entryValue=somevalue
到: www.example.com/somepage/someother/?product=test&special=12345ls&linkSource=website
我試圖跟隨,但它沒有按預期作業:此代碼添加var/www/*而不是鏈接
www.example.com/var/www/web6/htdocs/example.com/index.php/*
RewriteCond %{QUERY_STRING} (^|&)entryValue=somevalue
RewriteRule ^(.*)$ $1/?product=test&special=12345ls&linkSource=website [L,R]
此代碼洗掉路徑:
RewriteCond %{QUERY_STRING} (^|&)entryValue=somevalue
RewriteRule ^(.*)$ /?product=test&special=12345ls&linkSource=website [L,R]
我怎樣才能讓它作業?
uj5u.com熱心網友回復:
RewriteCond %{QUERY_STRING} (^|&)entryValue=somevalue RewriteRule ^(.*)$ $1/?product=test&special=12345ls&linkSource=website [L,R]
您需要在替換字串的開頭包含一個斜杠前綴。像這樣:
RewriteRule ^(.*)$ /$1/?product=test&special=12345ls&linkSource=website [L,R]
如果沒有斜杠前綴(RewriteRule 模式匹配的 URL 路徑不包含斜杠前綴),它被視為相對的,并且目錄前綴(即/var/www/...)將被添加回來并導致您看到的格式錯誤的重定向。
更新:
但這以“index.php”結束,路徑丟失
你把指令放在錯誤的地方并且有一個沖突。mod_rewrite 指令的順序很重要。
通常,像這樣的外部重定向需要.htaccess在任何內部重寫(如前端控制器)之前靠近檔案頂部。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/357520.html
