2011-09-20 104 views
1

我陷入了一個與htaccess的情況 - 堆棧中的以前的解決方案似乎沒有幫助我,所以我正在寫一個新的。這裏的問題是:我希望所有的請求被默認看着http://www.example.com/folder/public_html/如果犯規存在該文件夾中所請求的資源,應該將請求路由到http://www.example.com/index.phphtaccess重寫到默認目錄

: 我把一個請求對於http://www.example.com/example.php,所以默認情況下,服務器應該考慮/folder/public_html/example.php,如果文件不存在,那麼它應該通過在站點的根目錄的索引文件被路由即/index.php?request=example.php

請幫幫忙,我非常堅持

回答

1

這一規則在目錄http://www.example.com/

RewriteEngine on 
RewriteRule ^(.*)$ /folder/public_html/$1 [L] 

而且在http://www.example.com/folder/public_html/

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /index.php?request=$1 [R] 

用這個的.htaccess創建的.htaccess(如果你只想顯示/index.php?request=example .PHP但不希望瀏覽器重定向,使用[L]而不是[R])

編輯:

如果你想重定向到如果/folder/public_html/file.php的文件存在,在第二的.htaccess加上這些行:

RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*)$ $1 [R] 

默認文件/文件夾/如果由於第一個.htaccess中的重寫規則而存在public_html/file.php,但瀏覽器不會重定向