RedirectMatch 的奇怪輸出

RedirectMatch 的奇怪輸出

我正在 .htaccess 中嘗試一些 301 重定向。

我正在嘗試重定向這樣的內容:

http://creek.com/wines/red/greatwine

進入

http://creek.com/shop/product/wines/red/greatwine

但我得到以下輸出

http://creek.com/shop/product/red/greatwine?/wines/red/greatwine

wines 下有許多不同的子目錄,因此我需要將它們使用通配符。我希望這是有道理的。

請參閱下面我的 .htaccess。謝謝你的幫忙!

RewriteEngine On
RewriteCond %{HTTP_HOST} !^creek.com$ [NC]
RewriteRule ^(.*)$ http://creek.com/$1 [L,R=301]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteRule ^(.*)$ /index.php?/$1 [L]
</IfModule>

RedirectMatch 301 ^/wines/(.*)/(.*)$ http://creek.com/shop/product/$1

答案1

@丹是對的。

您應該將您轉換RedirectMatch為 aRewrite並將其放在您的<IfModule mod_rewrite.c>區塊之前:

RewriteCond %{REQUEST_URI} ^/wines/(.*)/(.*)
RewriteRule ^(.*)$ http://creek.com/shop/product/$1 [L,R=301]

相關內容