試着再次問我的問題,並盡我所能解釋它。如何在不重定向本地主機的情況下重寫htaccess中的url?
我在windows 10上運行WAMP。Apache版本2.4.18。我的項目位於www
文件夾中,名稱爲hoidja.ee
。 mod_rewrite
已啓用,AllowOverride
設置爲全部。
在該文件夾中我有.htaccess
文件,我試圖完成重寫而不重定向,它根本不起作用。我知道.htaccess
文件正在工作,因爲我可以將index.php
改寫爲/home/
例如,它工作得很好。
我有一個包含所有用戶列表的頁面。您可以點擊用戶,它會帶你到一個網址:
http://localhost/Hoidja.ee/hoidja.php?user_id=94&username=John
如何,我想這表明的是
http://localhost/Hoidja.ee/user/John
沒有任何重定向。
我曾嘗試:
#tried first with only user_id
RewriteCond %{QUERY_STRING} ^user_id=([A-Za-z0-9-]+)$
RewriteRule ^hoidja\.php$ /user/%1? [L]
這給了我404 /用戶/ 94不存在。
RewriteRule ^user/([0-9]+)/([A-Za-z0-9-]+)/?$ hoidja.php?user_id=$1&username=$2 [QSA]
這不會在視覺上做任何事情。如果我手動輸入http://localhost/Hoidja.ee/user/94/John
,它將進入該頁面並顯示用戶數據,但如果輸入原始URL,則不會重寫它。我也使用<base>
。
我嘗試了所有可能的方法,但似乎沒有任何工作。我怎樣才能完成網址重寫?
使用_both_,一個用戶ID和用戶名沒有什麼意義,它只是使事情更加複雜和曖昧... – arkascha
@arkascha這是真的。我正在使用user_id從數據庫中提取數據,但我想在url中顯示用戶名 – raqulka
好吧,沒有任何反對顯示名稱(爲什麼)。但是在重寫過程中,您不必重寫它或考慮它,是嗎? – arkascha