IIS 7 Rewrite mit übergeordneten Kategorien

Ich habe hier einige Fragen gesehen, die nach dem gleichen Thema fragen, aber entweder unbeantwortet oder etwas anders waren!

Ich habe das Folgende auf einem Linux-Rechner getestet und alles funktioniert gut, wenn ich es auf Windows übertrage, um unter iis7 zu laufen, bricht es. Also kenne ich seine Einrichtung, soweit der Post-Typ und Taxonomie-Code geht.

Ich erstelle ein Produkt (mein benutzerdefinierter Beitragstyp) und habe folgende Produktkategorien (benutzerdefinierte Taxonomie):
– test1
– test2
— test3
—- Test 4

Ich weise das Produkt der Kategorie Test 4 zu. Also auf meinem Linux-Rechner http://localhost/products/test1/test2/test3/test4/product-1/ funktioniert perfekt. Auf IIS7 bricht es ABER wenn ich das Produkt der Kategorie Test 1 http://localhost/products/test1/product-1/ funktioniert es so: http://localhost/products/test1/product-1/

Ich benutze das “Custom Post Type Permalinks” -Plugin und setze meinen posttype permalink auf: ‘/% product_categories% /% postname% /’

Hier ist meine web.config Datei:

                 

Irgendwelche Ideen wären großartig!

– Bearbeiten – Ich habe auch gerade versucht, http://localhost/products/test4/product-1/ und es hat funktioniert. Es mag also einfach nicht die Elternkategorien.

Solutions Collecting From Web of "IIS 7 Rewrite mit übergeordneten Kategorien"

Endlich fand ich die Antwort. Es ist eine Mischung aus mehreren verschiedenen Lösungen, die ich online gefunden habe, aber hier ist es!

Der erste Schritt ist, dies zu Ihrer functions.php hinzuzufügen

 add_rewrite_rule( 'products/([^/]+)/([^/]+)/?', 'index.php?pmfg_product_categories=$matches[1]&products=$matches[2]', 'top' ); 

Zweitens benötigen Sie dies in Ihrer web.config

< ?xml version="1.0" encoding="UTF-8"?>

Abschließend hier ist, wie ich meinen benutzerdefinierten Post-Typ und Taxanomie-Setup habe. Ersetzen Sie “yourid” mit allem, was Sie wollen, um sicherzustellen, dass Sie keine Probleme mit anderen Plugins haben.

 // Register Custom Post Type function yourid_product_tax_type(){ $labels = array( 'name' => _x( 'Product Categories', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Product Category', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( 'Product Categories', 'text_domain' ), 'all_items' => __( 'All Product Categories', 'text_domain' ), 'parent_item' => __( 'Parent Category', 'text_domain' ), 'parent_item_colon' => __( 'Parent Category:', 'text_domain' ), 'new_item_name' => __( 'New Product Category Name', 'text_domain' ), 'add_new_item' => __( 'Add New Product Category', 'text_domain' ), 'edit_item' => __( 'Edit Product Category', 'text_domain' ), 'update_item' => __( 'Update Product Category', 'text_domain' ), 'separate_items_with_commas' => __( 'Separate categories with commas', 'text_domain' ), 'search_items' => __( 'Search Product Categories', 'text_domain' ), 'add_or_remove_items' => __( 'Add or remove product categories', 'text_domain' ), 'choose_from_most_used' => __( 'Choose from the most used product categories', 'text_domain' ), 'not_found' => __( 'Product Category Not Found', 'text_domain' ), ); $args = array( 'label' => 'Product Categories', 'labels' => $labels, 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_in_nav_menus' => true, 'args' => array( 'orderby' => 'term_order' ), 'rewrite' => array( 'slug' => 'test', 'with_front'=>true, ), 'query_var' => true, ); register_taxonomy( 'yourid_product_categories', array(), $args ); } add_action( 'init', 'yourid_product_tax_type', 0 ); function yourid_post_type() { $labels = array( 'name' => _x( 'Products', 'Post Type General Name', 'text_domain' ), 'singular_name' => _x( 'Product', 'Post Type Singular Name', 'text_domain' ), 'menu_name' => __( 'Products', 'text_domain' ), 'parent_item_colon' => __( 'Parent Product: ', 'text_domain' ), 'all_items' => __( 'All Products', 'text_domain' ), 'view_item' => __( 'View Product', 'text_domain' ), 'add_new_item' => __( 'Add New Product', 'text_domain' ), 'add_new' => __( 'Add New', 'text_domain' ), 'edit_item' => __( 'Edit Product', 'text_domain' ), 'update_item' => __( 'Update Product', 'text_domain' ), 'search_items' => __( 'Search Product', 'text_domain' ), 'not_found' => __( 'Product Not Found', 'text_domain' ), 'not_found_in_trash' => __( 'Product not found in Trash', 'text_domain' ), ); $rewrite = array( 'slug' => 'products', 'with_front' => true, 'pages' => true, 'feeds' => true, ); $args = array( 'label' => __( 'yourid_product', 'text_domain' ), 'description' => __( 'YourName Products', 'text_domain' ), 'labels' => $labels, 'taxonomies' => array( 'yourid_product_categories' ), 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'rewrite' => array( 'slug'=>'products', 'with_front'=>false, ), 'capability_type' => 'page', ); register_post_type( 'yourid_product', $args ); } // Hook into the 'init' action add_action( 'init', 'yourid_post_type', 0 ); 

Wenn Sie Probleme haben oder Hilfe benötigen, lassen Sie es mich wissen!