2015-11-22 76 views
2

我有這個URL,它給我的兩個主要參數,文件夾和頁面,和SOM等塔哈特可變量存在與否:的.htaccess重寫PHP訪問包含子文件夾

http://www.domain.com/adm/master.php?f=folder&p=page&otherparam1=somthing&otherparm2=somthing&otherparm3=somthing[...] 
在我的主人

。 PHP文件包括我根據這些參數,一個php文件:

$folder = $_GET['f']; 
$page = $_GET['p']; 
if(empty($page)) { 
    $page = 'dashboard'; 
} 
$path = $folder.'/'.$page; 
include_once 'pages/'.$path.'.php?otherparm1=somthing&otherparm2=somthing&otherparm3=somthing[...]';  

otherparam要多個參數給我的網址。

我想rewrtite的URL顯示財產以後這樣的:

www.domain.com/adm/folder/page/somthing/somthing/somthing[...] 

我已經在網上搜索,但沒有能夠找到一個解決方案。

回答

0

如果你想用簡單的.htacces做到這一點,那麼你可以使用下面的代碼.htacces:

RewriteEngine on 
RewriteCond $1 !^(index\.php|css|favicon.ico|fonts|images|js|robots\.txt) 
RewriteRule ^(.*)$ index.php/$1 [L] 

基本上這代碼做的是覆蓋到您的域名您的要求(例如:本地主機/ mysite的)而不是訪問文件夾或文件,它將訪問您的index.php。除了index.php,favoicon.ico,robots.txt文件和CSS,字體,圖像和js文件夾或您在第二行上定義的代碼以外。

+0

那麼,這不是問題。 OP正試圖用參數重寫一個url到一個不同的目的地,你的代碼會將他/她發送到index.php – starkeen

+0

哦,這就是他的意思。我雖然想要像這樣做'www.domain.com/adm/folder/page/somthing/somthing/somthing'這樣的URL,所以我給他舉個例子如何去做。是的,因爲我認爲它會將他發送到index.php,以便他可以通過index.php發送它。 – Hernantas

0

在你的根試試這個/的.htaccess

RewriteEngine On 

RewriteRule ^adm/([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /adm/master.php?f=$1&p=$2&otherparam1=$3&otherparm2=$4&otherparm3=$5 [NC,L] 

$ 1,$ 2,$ 3 ...包含whateve值在正則表達式捕獲組匹配 「([^ /] +)」。

這將改寫

example.com/adm/folder/page/foo/bar/foobar 

example.com/adm/master.php?f=folder&p=page&otherparam1=foo&otherparm2=bar&otherparm3=foobar 

不改變在瀏覽器地址欄中的網址。

+0

當我輸入網址www.domain.com/adm/folder/page時,我被重定向到www.domain.com/deltakere/legg-til ...「adm」已經消失... –

+0

他們是真實的文件或文件夾?我的意思是/ adm /文件夾/頁面? – starkeen

+0

是的。它是路徑adm/folder/page.php –