我正在尝试 .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
Wine 下有许多不同的子目录,所以我需要将它们使用通配符。我希望这有意义。
请参阅下面的我的 .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
@Dan 是对的。
您应该将您的转换RedirectMatch
为Rewrite
并将其放在您的<IfModule mod_rewrite.c>
块之前:
RewriteCond %{REQUEST_URI} ^/wines/(.*)/(.*)
RewriteRule ^(.*)$ http://creek.com/shop/product/$1 [L,R=301]