[英]CodeIgniter URL rewriting not work
我已經鎖定了我的系統...我更改了config.php文件中的設置以獲得帶參數的URL。 突然,我有一個產品控制器,顯示我傳遞URL參數的ID。
HTTP://本地主機:8888 / mywebsite / index.php的C =產物&M =指數&id_product = 12
此URL現在可以使用我想獲得的類型的URL:
HTTP://本地主機:8888 / mywebsite /產品/我的產品-12
所以我把它放在.htaccess文件中:
RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?c=product&m=index&id_product=$2 [L]
但頁面顯示:在此服務器上找不到請求的URL /index.php/product/my-product-12.html
。
我的htaccess文件:
#Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?c=product&m=index&id_product=$2 [L]
我的config.php文件:
<?php
$config['base_url'] = 'http://localhost:8888/mywebsite/';
$config['index_page'] = '';
$config['uri_protocol'] = 'QUERY_STRING';
$config['url_suffix'] = '';
$config['enable_hooks'] = TRUE;
$config['allow_get_array'] = TRUE;
$config['enable_query_strings'] = TRUE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
$config['directory_trigger'] = 'd';
$config['rewrite_short_tags'] = FALSE;
?>
在RewriteBase之后放置新的RewriteRule:
RewriteEngine on
RewriteBase /
RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+)$ index.php?c=product&m=index&id_product=$2 [L]
RewriteCond $1 !^(index\.php|public|\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
因為你必須先重寫index.php?c=product
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.