没有SEO友好的URL到SEO友好的htaccess重定向

时间:2013-12-12 07:58:41

标签: .htaccess redirect url-redirection

尝试301重定向

www.mydomain.com/product.php?view=cat&category=t-shirts

www.mydomain.com/t-shirts/

请注意我有多种变体

product.php?view=cat&category=...

此外,旧类别参考可能是X;但是,新的类别参考可能是Y.这是如何完成的?提前感谢您的帮助。

这就是我的htaccess现在的样子

RewriteBase /
# RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]*)/$ index\.php?pg=$1 [L]
RewriteRule ^([^/]*)/([^/]*)/$ index\.php?pg=$1&pid=$2 [L]
# RewriteRule . /index.php [L]

Redirect 301    /products.php?view=cat&mng=t-shirts http://www.mydomain.com/shirts/
Redirect 301    /products.php?view=cat&mng=shorts   http://www.mydomain.com/pants/
Redirect 301    /products.php?view=cat&mng=jeans    http://www.mydomain.com/pants/

毋庸置疑,我所有的“重定向301”都在给予404.

1 个答案:

答案 0 :(得分:0)

我找不到任何可以避免“重写”和“重定向”冲突的逻辑。因此,我利用php 301重定向将其保存在文件“products.php”中。在我的脚本中,我做了以下事情:

if (isset($_GET['mng']))
{ 
    switch ($_GET['mng'])
    {
        case 't-shirts':
            header("HTTP/1.1 301 Moved Permanently");
            header("Location: http://www.mydomain.com/shirts/");
            break;
        case 'shorts':
            header("HTTP/1.1 301 Moved Permanently");
            header("Location: http://www.mydomain.com/pants/");
            break;
        case 'jeans':
            header("HTTP/1.1 301 Moved Permanently");
            header("Location: http://www.mydomain.com/pants/");
            break;
    }
}

抱歉,我没有评论我的PHP。感谢您的投入。