我想知道是否應該使用.htaccess將獲取變量從數據庫(用戶名)更改爲值。htaccess更改獲取變量到mysql用戶名數據庫
所以如果有
http://www.url.com/user.php?u=1
你怎麼CONVER到
http://www.url.com/andrewliu
謝謝!在PHP
我想知道是否應該使用.htaccess將獲取變量從數據庫(用戶名)更改爲值。htaccess更改獲取變量到mysql用戶名數據庫
所以如果有
http://www.url.com/user.php?u=1
你怎麼CONVER到
http://www.url.com/andrewliu
謝謝!在PHP
你需要改變你的user.php
採取的,而不是一個用戶ID用戶名。然後,你可以使用類似:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?([a-z0-9_-]+)/?$ /user.php?u=$1 [L]
這通過u
查詢字符串參數將用戶名,主要爲:/user.php?u=andrewliu
否則沒有辦法的htaccess和mod_rewrite的可以知道的映射是什麼USER_ID和用戶名之間。或者,你可以寫一個數據庫腳本,並使用RewriteMap爲你創建一個映射:
RewriteMap usermap prg:/path/to/userscript
,並在您的htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?([a-z0-9_-]+)/?$ /user.php?u=${usermap:$1} [L]
最後一個選項,如果你只得到了,也就是說, 5用戶(或少量),您可以進行明確的重寫:
RewriteEngine On
RewriteRule ^/?andrewliu$ /user.php?u=1 [L]
RewriteRule ^/?anotheruser$ /user.php?u=2 [L]
RewriteRule ^/?foousername$ /user.php?u=3 [L]
使用$ GET獲得的「U」
然後用你的邏輯將其轉換爲名稱的價值。
現在只需使用重定向功能,去到URL
您需要使用Mod-ReWrite。你可以在你的htaccess文件中使用它,但是如果你有權訪問你的httpd.conf文件,那麼它會更快。
您最好在您的htaccess文件中使用?u = 1,並使用它來查找名稱並將名稱追加到末尾。否則,你將不得不尋找用戶名和可能succesiptable到拼寫錯誤等等等等
RewriteRule ^/([0-9]+)/.*$ /user.php?u=$1 [L]
這是#2是怎麼做的,嘗試在URL訪問該頁面沒有數,你會得到一個404頁未找到。獲得正確的數字,以及在正斜槓交換正確的單詞之後你還鍵入了什麼?這更加棘手!
提及使用httpd.conf而不使用htaccess。爲了正確解釋這是因爲在單個請求中使用服務器資源讀取htaccess,而僅在服務啓動時讀取conf頁面! – youngcouple10
太棒了!我只是將我的變量設置爲我的用戶名,並將其用於user.php。奇蹟般有效!謝謝! – hellomello