URL rewriting problem |
I'm locked with my system... I changed the settings in my config.php file to have URLs with parameters. Suddenly I have a product controller that displays the id that I pass URL parameter.
http://localhost:8888/mywebsite/index.ph...product=12 This URL works now I want to get a url of the type: http://localhost:8888/mywebsite/product/my-product-12 So I put this in the .htaccess file: Code: RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?c=product&m=index&id_product=$2 [L] But the page displays : The requested URL /index.php/product/my-product-12.html was not found on this server. My htaccess file : Code: #Options +FollowSymLinks My config.php file: Code: <?php
Hi Xenos92,
I don't know about your approach, but if I wanted to do something like http://localhost:8888/mywebsite/product/12, I would probably do something like this: .htaccess: First of all set change the rewritebase in your .htaccess file to /mywebsite/. Code: RewriteBase /mywebsite/ Then delete the new rewrite rule from the .htaccess file. Code: #RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?c=product&m=index&id_product=$2 [L] config.php: PHP Code: $config['enable_query_strings'] = FALSE; routes.php: PHP Code: $route['product/(:num)'] = 'product/product_lookup_by_id/$1'; So with setup the url http://localhost:8888/mywebsite/product/5 is routed to the product_lookup_by_id method from the product controller. In the method you can use $this->uri->segment(3) to catch the id. If you really want to do http://localhost:8888/mywebsite/product/my-product-12, change :num in the new route in :any, and figure out a way to get the id from the segment you retrieve. Hope this helps... - Roger |
Welcome Guest, Not a member yet? Register Sign In |