2012-02-11 97 views
0

我不知道在.htaccess文件中重寫URL的任何內容,似乎無法弄清楚如何做我需要做的事情。如何進行URL重寫?

我的網址是這樣的:

www.website.com/subdir/10-this-is-a-post 

我有子目錄,index.php的一個php文件,而該文件中的代碼需要拉基於開頭的號碼從DATEBASE內容頁面名稱的 - 在這種情況下,10

爲了進一步複雜的是,存在的基本目錄.htaccess文件(即子目錄的父目錄),其具有下面的代碼:

<IfModule mod_rewrite.c> 
Options -MultiViews 
RewriteEngine On 
RewriteBase/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

有關我如何完成此任務的任何建議?

回答

0
<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

這之後一切就緒/ ...到index.php/...

例如:/子目錄/ 10-這 - 是 - 一 - 後

將被改寫於:/index.php/subdir/10-this-is-a-post

使用此來解析段:

$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 
$segments = explode('/', $_SERVER['REQUEST_URI_PATH']); 
+0

您好,感謝您的幫助。不幸的是,我需要subdir目錄中的索引文件來處理頁面請求。有什麼方法可以將/ subdir/10-this-is-a-post重寫爲/subdir/index.php/10-this-is-a-post? – Nate 2012-02-11 01:23:20

+0

是在重寫規則中只是改變索引文件的位置:RewriteRule ^(。*)$ subdir/index.php/$ 1 [L]。 subdir在/ subdir/10-this-is-a-post和/subdir/index.php/10-this-is-a-post是否一樣? – Michael 2012-02-11 01:28:02

+0

這是Mod_Rewrite的快速指南,供參考:http://forum.modrewrite.com/viewforum.php?f=12 – Michael 2012-02-11 01:32:41