2012-01-23 53 views
0

道歉,如果這之前已經問過,但我已經搜索了全部的答案,但我一直沒能找到一個令人滿意的解決方案。重寫規則在.htaccess顯示地址欄中重寫的URL

我有我的的httpdocs以下.htaccess文件:

Options +FollowSymlinks 
RewriteEngine on 

RewriteBase/

RewriteCond %{HTTP_HOST} ^(www.)?example.com$ 
RewriteCond %{REQUEST_URI} !^/users/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.+)$ users/$1 [L] 

這正確映射 「www.example.com/joebloggs」 到 「www.example.com/users/jobloggs」 和正確顯示適當的索引頁面。

問題是「www.example.com/users/jobloggs」顯示在地址欄中,而不是原始(短)網址。非常感謝這方面的幫助。

回答

0

如果你說這是加載DirectoryIndex文件(例如index.html/index.php),那麼我會說缺乏在RewriteRule替代尾隨斜線的是這個問題。嘗試類似:

RewriteRule ^(.+?)/?$ users/$1/ [L] 
+0

謝謝!添加斜槓確實解決了地址欄問題。但是,正如你在答案中提到的那樣,規則還不完全正確。我現在無法導航到其他頁面,因爲點擊鏈接會將我帶到www.example.com/thelink.html,而不是www.example.com/joebloggs/thelink.html。 – Kev

+0

您的源代碼中包含哪些網址?你有'/ thelink.html'嗎? – JMM

+0

每個用戶目錄下都有一個完整的站點。使用我現在擁有的RerwiteRule,如果我瀏覽到www.example.com/joebloggs,我可以看到索引頁,但無法瀏覽網站。如果我瀏覽到www.example.com/joebloggs/(注意尾部斜線),它工作正常。 – Kev