如何將「www.mydomain.com/pattern/pattern/value」重定向到「www.mydomain.com/pattern/value」? 使用:htaccess rewriteRule重複URI模式
RewriteRule ^pattern/(.*) /$1 [l,r,qsa]
重定向到:www.mydomain.com/value,缺少格局目錄。
如何將「www.mydomain.com/pattern/pattern/value」重定向到「www.mydomain.com/pattern/value」? 使用:htaccess rewriteRule重複URI模式
RewriteRule ^pattern/(.*) /$1 [l,r,qsa]
重定向到:www.mydomain.com/value,缺少格局目錄。
感謝: 這是我最後的代碼
RewriteRule ^search/(.*) search.php?q=$1 [qsa]
RewriteRule ^search/images/(.*) images/$1
RewriteRule ^search/css/(.*) css/$1
RewriteRule ^search/search/(.*) /search/$1?s [l,r]
RewriteCond %{HTTP_REFERER} search/(.*)
RewriteCond %{QUERY_STRINg} !^s$
RewriteRule ^search/(.*) /$1 [l,r]
我加入的S QUERY_STRING只在雙模式的情況下,爲了保持儘可能乾淨? HTTP_REFERER僅在鏈接來自包含查詢結果的頁面時才用於應用規則。
這是因爲規則是由於這個模式執行兩次:^pattern/(.*)
/pattern/pattern/value
和重定向到/pattern/value
/pattern/value
,並重定向到/value
替換您的規則與此:
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[^/]+/(.+)$ /$1?r [L,R]
anubhava上指着我正確的方向
它可以將「/ pattern/pattern/value」重定向到「/ pattern/value」,但它也可以將「/ pattern/value」重定向到「/ value」。 我需要的是從URL中刪除第一個「模式」,而不是第二個,如你的例子。你能幫助我嗎? – fcaserio
我的規則是隻刪除第一個模式,因爲第二個模式是右邊再次使用的$ 1的一部分。 – anubhava
然後我不知道我在做什麼錯。 www.mydomain.com/pattern/val 沒有重定向到 www.mydomain.com/val – fcaserio