如何才能將我的網站的名稱更改爲:www.example.com/user/panel.php至www.example.com/username/panel.php,其中「用戶名」是唯一的每個用戶,並且對於每個登錄將是來自數據庫的用戶的名稱,因爲它在jsfiddle.net中,他們可以幫助我嗎?如何使用htaccess在php中更改目錄的名稱?
回答
個人而言,我不會用的.htaccess這個(特別)
是說,大多數時候人們做這種方式
RewriteEngine On
RewriteRule ^users/([-a-zA-Z0-9_]+)/?$ index.php?user=$1 [L]
所以,如果你有一個像
www.yoursite.com/users/someguy
一個網址
然後它將它傳遞給apache(和php)如
www.yoursite.com/index.php?user=someguy
然後在PHP中,您只需使用$_GET[user]
即可訪問它。我現在忽略安全問題(你不應該依靠用戶輸入來告訴他們是誰,他們可以說謊),因爲我會使用我稱之爲URI方法(而不是URL)的URI。一條想象的路徑。這也是許多MVC系統採用的方法。所以,爲了這個,我將與URI開始
www.yoursite.com/index.php/users/someguy
注意其中的index.php是(中間)。然後,你喜歡這款
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f #if not a real file
RewriteCond %{REQUEST_FILENAME} !-d #if not a real folder
RewriteRule ^(.*)$ index.php/$1 [L] #hide the index.php
一個的.htaccess那麼這樣做是允許你刪除index.php
給你這樣的
www.yoursite.com/users/someguy
這就是我們想要的東西,看起來基本上是相同的URL作爲第一種情況。
然後你凸輪使用$_SERVER['QUERY_STRING']
晚飯全球,這將給你一切都會過去的index.php
/users/someguy
你可以拆分起來,它的地方,做任何你需要用它的路線。就像我喜歡這個更多這個
$uri = array_filter(explode('/', $_SERVER['QUERY_STRING']));
//$uri = [ 'users', 'someguy' ];
現在的原因,是它更靈活,它可以讓你使用的查詢字符串的URL,其他的東西的?var
一部分。 (如可加入書籤的搜索表單)即。因爲你沒有破壞GET請求的查詢參數,所以感覺不那麼亂。相反,使用第一種方法,如果你的.htaccess草率,你可能會讓URL的查詢部分在你的網站上無法使用,這對我來說只是感覺不對。
它也更容易維護,因爲它需要額外的漂亮網址
例如沒有進一步的設置: 說你想要prettyfy您的產品。使用第一種方法,你將不得不回到.htaccess
中新增至少1多個規則:
RewriteEngine On
RewriteRule ^users/([-a-zA-Z0-9_]+)/?$ index.php?user=$1 [L]
RewriteRule ^products/(0-9_]+)/?$ index.php?product=$1 [L]
甚至可能更復雜的層面,如果你有產品類別
RewriteRule ^produts/([-a-zA-Z0-9_]+)/(0-9_]+)/?$ index.php?category=$1&product_id=$2 [L]
一個欺騙你會之後結束了幾十條規則,其中一些規則可能不會馬上清楚他們的工作。然後你意識到你拼寫爲products
爲produts
,並且必須開始重命名事物。後來只是一團糟。
現在使用第二種方法,除了將其路由到索引頁面之外,您不需要執行任何其他步驟。你只要把這個網址
www.yoursite.com/products/123
而且從$_SERVER
陣列拉的東西沒有進一步重寫規則搞亂。
這是我以前的答案,概述瞭如何構建基本路由器。
Oop php front controller issue
有意義。
- 1. 如何使用.htaccess更改URL中的PHP頁面名稱?
- 2. 如何在IsolatedStorage中更改目錄名稱和文件名稱
- 3. 如何使用htaccess重寫使用雙目錄名稱的url?
- 4. 在Python中更改目錄名稱
- 5. 使用htaccess替換URL目錄名稱?
- 6. 如何用htaccess更改基本目錄
- 7. htaccess更改目錄
- 8. .htaccess更改目錄
- 9. 如何使用c#regex更改文件和目錄名稱
- 10. 的WordPress:使用PHP或的.htaccess更改名稱
- 11. NetBeans目錄名稱正在更改
- 12. 如何更改用於actionscript項目的Flash Builder 4.5使用的目錄名稱?
- 13. Htaccess ModRewrite:刪除www並更改目錄名稱
- 14. 使用.htaccess更改工作目錄
- 15. 如何使用.htaccess重定向目錄名稱,但不是頁面名稱?
- 16. 如何按名稱更改目錄的用戶和組權限?
- 17. 如何更改JTree中的「根」目錄名稱?
- 18. 如何從目錄名稱中提取父目錄的名稱?
- 19. 在.htaccess中更改根目錄
- 20. 使用PHP查找目錄名稱
- 21. HTACCESS - 更改目錄結構
- 22. .htaccess更改目錄圖片
- 23. 如何每年在.htaccess中更改網站的根目錄?
- 24. 將目錄名稱更改爲變量
- 25. Unix命令來更改目錄名稱
- 26. 在Rails應用程序中更改目錄名稱
- 27. 如何更改目錄?在PHP
- 28. 如何使用mod_rewrite更改.htaccess中的更多擴展名?
- 29. 如何找到更改目錄名稱的路徑?
- 30. .htaccess重寫其中url基名稱與目錄名稱相同
以前可能已經詢問過。是否[this](https://stackoverflow.com/questions/16655015/using-htaccess-to-change-directory-in-url),[this](https://stackoverflow.com/questions/43076620/using- htaccess-to-change-directory-show-in-url)或[this](https://stackoverflow.com/questions/1264773/rewrite-a-folder-name-using-htaccess)回答你的問題? – Ash