讓我們開始與我們的大網址:
http://mycustomproject.com/index.php/webpages/view/my-url-title-of-the-post
的第一件事情,你通常做你的Codeigniter項目是從URL中刪除index.php文件。要做到這一點的話,那也是相當簡單:
第一步
此代碼.htaccess文件添加到您的項目的根。
<IfModule mod_rewrite.c>
# Turn on URL rewriting
RewriteEngine On
# If your website begins from a folder e.g localhost/my_project then
# you have to change it to: RewriteBase /my_project/
# If your site begins from the root e.g. example.local/ then
# let it as it is
RewriteBase/
# Protect application and system files from being viewed when the index.php is missing
RewriteCond $1 ^(application|system|private|logs)
# Rewrite to index.php/access_denied/URL
RewriteRule ^(.*)$ index.php/access_denied/$1 [PT,L]
# Allow these directories and files to be displayed directly:
RewriteCond $1 ^(index\.php|robots\.txt|favicon\.ico|public|assets|css|js|images)
# No rewriting
RewriteRule ^(.*)$ - [PT,L]
# Rewrite to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [PT,L]
</IfModule>
創建的.htaccess的文件後,你的項目結構必須是這樣的:
website_folder/
----應用/
----資產/
---- system/
---- user_guide/
---- htaccess的< -------------------------
--- - 的index.php
---- LICENSE.TXT
第二步
現在去:應用程序/配置/ config.php文件並改變: $配置[ 'index_page'] ='索引。PHP的「;
到 $ config ['index_page'] ='';
所以,現在你的URL看起來像這樣:
http://mycustomproject.com/webpages/view/my-url-title-of-the-post
@kradmiy其實我有2個應用程序運行上面提到的2個應用目前測試設置 我使用中提到的國防部重寫規則下codeigniter,它們對於index.php位於服務器根目錄中的主應用程序正確工作。 現在我已經創建了更多的根目錄city1和city2中的文件夾,每個文件夾都有自己的index.php文件,但是當我在瀏覽器中訪問url時,它們似乎重定向到根目錄下的主應用程序 – user160108 2011-04-15 10:16:01
,像「城市/搜索」這樣的網址,實際上並沒有在你的服務器上存在這樣的目錄。例如,如果你的網址中的搜索段長度不變,那麼你可以調整'.htaccess'規則來將這個網址重寫爲CI index.php,並在url中傳遞'city/search'作爲參數(你可以在控制器中獲取這些數據並根據收到的值調用合適的方法)。 'RewriteCond%{REQUEST_URI}^/(。*)/ search /(.*)$ RewriteRule ^(。*)$ /inde.php?uri=$1 [L]'GET'中有'url' var提供數據的陣列。 – 2011-04-15 11:43:39
@kradmiy可我還做這樣的事情 $路線[「:任何」] =「城市/ switch_city」 所以路由器穿城而過控制器通過每個URL,並從那裏我調用相應的控制器和方法 威爾這項工作 – user160108 2011-04-15 13:12:31