我第一次使用mod_rewrite爲了創建一個類似Facebook的網站。Mod_rewrite網站像Facebook
Whener我鍵入mywebsite.com/user.name,mod_rewrite將我重定向到mywebsite.com/hotsite/index/php,在那裏,我使用一點PHP從url獲取用戶名並從userId獲取userId它。
然後,我有其他的領域,如mywebsite.com/user.name/diary,mywebsite.com/user.name/contact,等等...
這是所有與此代碼中運作良好我的.htaccess:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /mywebsite
# ————————————————————————-
# > URL REWRITING
# ————————————————————————-
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)/diario$ hotsite/diary.php
RewriteRule ^(.*)/recados$ hotsite/messages.php
RewriteRule ^(.*)/fotos$ hotsite/photos.php
RewriteRule ^(.*)/videos$ hotsite/videos.php
RewriteRule ^(.*)/contato$ hotsite/contact.php
RewriteRule ^([a-z0-9._\-]+)$ hotsite/index.php [L]
我遇到的問題是與外部文件(CSS,圖像,背景...)的路徑。 由於我的瀏覽器認爲我在「website.com」,所以我必須在所有路徑中添加「hotsite /」。這適用於我在用戶主頁時的情況,比如「mywebsite.com/user.name」。但是,如果我去「mywebsite.com/user.name/diary」瀏覽器認爲我在另一個文件夾,然後我必須添加「../hotsite」爲了路徑工作。
我可以在所有路徑中做一個IF來檢查我是否在索引處,但是這會非常笨拙。 我也可以把絕對路徑放在evertyhing中,但是因爲我是用apache離線開發的,所以這也不會很好。
其他解決方案?
謝謝你vey多。
我覺得那樣做了!我添加了基本標籤給我所有的htmls execpt索引,它工作。 謝謝! – DanielFox