一個URL我已經重定向,像這樣:的.htaccess重定向到一個使用重寫規則
Redirect 301 /url-1 /url-2
然而,/url-2
匹配像這樣的重寫:
RewriteRule ^([^.]+)$ index.php?view=$1 [QSA,L]
這被重定向到/url-1
:
/url-2?view=url-1
我怎樣才能得到這個重定向,然後重寫正確?
一個URL我已經重定向,像這樣:的.htaccess重定向到一個使用重寫規則
Redirect 301 /url-1 /url-2
然而,/url-2
匹配像這樣的重寫:
RewriteRule ^([^.]+)$ index.php?view=$1 [QSA,L]
這被重定向到/url-1
:
/url-2?view=url-1
我怎樣才能得到這個重定向,然後重寫正確?
幾點建議:
mod_rewrite
規則Redirect
指令保持重定向重寫規則之前的規則。您可以使用這些規則:
RewriteEngine On
RewriteRule ^url-1/? /url-2 [L,NC,R=301]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+?)/?$ index.php?view=$1 [QSA,L]
記住這個測試之前,清除瀏覽器緩存。
我的'/ url-1'到'/ url-2'是一個重定向,而不是重寫。我在哪裏放置這個? –
'R = 301'表示它不是重寫的重定向。如果我們使用'R'標誌意味着它是一個重定向。 – anubhava
所以我應該重寫而不是重定向? –
'/ url-1'應該重定向到'/ url-2',然後'/ url-2'全部重寫。最終的url應該只是'/ url-2' –