2015-01-26 55 views
0

我想要使用.htaccess重寫來創建每個用戶在網站上擁有自己的文件夾的錯覺,當它實際上只是少數PHP文件生成所有用戶內容時常通過從數據庫)拉動:使用.htaccess重寫將變量當作文件夾名稱

/members/bob/avatar.jpeg點/members/avatar.php?username=bob

/members/bob/about.html點/構件/約.php?用戶名=鮑勃

我完全失去了如何做到這一點...我已經拉起使用htaccess重寫機制的教程,但沒有涉及改變/ folder_name/variable/file_synonym到/ folder_name/file_actual?var =變量。如果有人知道如何做這樣的事情,我會非常感興趣,因爲我不知道該從哪裏開始。

回答

0

這最終成爲了解決方案:

RewriteEngine On 

RewriteRule ^members/([A-Za-z0-9-]+)/avatar.jpeg?$ members/avatar.php?username=$1 [NC,L] 
RewriteRule ^members/([A-Za-z0-9-]+)/about.html?$ members/about.php?username=$1 [NC,L] 
RewriteRule ^members/([A-Za-z0-9-]+)/feed.html?$ members/feed.php?username=$1 [NC,L] 

我用http://htaccess.madewithlove.be/來測試我的工作,因爲我跟着去了,以確保我做的一切權利。顯然內部的htaccess重寫不允許在Hostgator的共享服務器上,所以我必須等到我升級到真正使用這種方法。

0

嘗試:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \ /+members/avatar\.php\?username=([^&\ ]+) 
RewriteRule^/members/%1/avatar.jpeg? [L,R] 

RewriteCond %{THE_REQUEST} \ /+members/about\.php\?username=([^&\ ]+) 
RewriteRule^/members/%1/about.html? [L,R] 

RewriteCond ${REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^members/([^/]+)/(avatar|about)\.(jpeg|html)$ /members/$2.php?username=$1 [L] 
+0

進入的網址看起來像「/members/bob/avatar.jpeg」,我需要一個內部重寫來將它發送到「/members/avatar.php?username=bob」。你的解決方案需要後者,並重定向到前者,這是一個實際上不存在的目錄。 – CerebralDreams 2015-01-27 01:17:54

相關問題