PHP When rewrite pages urls how to remove or redirect category.php?cat_id=2 urls to rewrited urls?

前端 未结 2 1596
再見小時候
再見小時候 2021-01-26 12:04

I am using this URL rewriting with PHP The Folder structure for rewriting the URLs. I am done it is working fine but after rewrite the URLs then ok now i have two URLs one is si

相关标签:
2条回答
  • 2021-01-26 12:39

    Here is how the referred code example supposed to work:

    product-category.php

    <?php
    define( 'INCLUDE_DIR', dirname( __FILE__ ) . '/' );
    
    $rules = array( 
        'redirect-category'  => "/product-category\\.php\\?cat_id=(?'category'\\d+)"
    );
    
    $uri = $_SERVER['REQUEST_URI'];
    $uri = urldecode( $uri );
    
    foreach ( $rules as $action => $rule ) {
        if ( preg_match( '#'.$rule.'#', $uri, $params ) ) {
            include( INCLUDE_DIR . $action . '.php' );
            exit();
        }
    }
    

    redirect-category.php

    <?php
    $categories = array(
        2 => 'men-items'
    );
    header("Location: " . preg_replace( '#'.$rule.'#', "/product_category/{$categories[$params['category']]}/", $uri ));
    
    0 讨论(0)
  • 2021-01-26 12:56

    At the top of your htaccess , put the following rule :

    RewriteEngine on
    
    RewriteCond %{QUERY_STRING} ^cat_id=2$ [NC]
    RewriteRule category.php$ http://199.192.21.232/~admin/product-category/men-items? [L,R=302]
    

    This will redirect http://199.192.21.232/~admin/product-category.php?cat_id=2 to http://199.192.21.232/~admin/product-category/men-items .

    In case you have multiple old URLs with the same queryString , just change the condition pattern from ^cat_id=2$ to ^cat_id=.+$ . When you are sure the redirect is working fine change R=302 to R=301 to make the Redirection permanent .

    0 讨论(0)
提交回复
热议问题