我認爲這是一個非常簡單的問題。Mod重寫隱藏文件夾
你是如何重寫apache以隱藏文件夾的。
EX:www.website.com/pages/login.php到www.website.com/login.php
或www.website.com/pages/home.php到www.website.com/ home.php
該文件夾需要一直隱藏。謝謝
我認爲這是一個非常簡單的問題。Mod重寫隱藏文件夾
你是如何重寫apache以隱藏文件夾的。
EX:www.website.com/pages/login.php到www.website.com/login.php
或www.website.com/pages/home.php到www.website.com/ home.php
該文件夾需要一直隱藏。謝謝
我假設你想要的是瀏覽器請求/home.php但服務器實際使用位於/pages/home.php的文件,對不對?如果是這樣,這應該工作:
確保apache mod_rewrite模塊已安裝。然後,用在你的Apache配置是這樣的,虛擬主機配置,或(不太理想).htaccess文件:
RewriteEngine On
RewriteRule ^/(.*)$ /pages/$1
規則使用正則表達式,所以你可能想看看關於這個問題,如果參考你不確定。閱讀manual以獲取關於其他指令(RewriteCond可能非常有用)或規則選項的更多信息。
如果您的例子實際上反映了你所需要的文件,然後在你的.htaccess文件:
#Options +FollowSymLinks
RewriteEngine On
RewriteRule ^/pages/(.+)\.php $1\.php [NC, L]
此外,如果目錄具有讀取權限,它不能在現實中「隱藏」。我假設你的意思是它不再出現在網址中。
我知道這裏的原始文章來自幾年前,但它已經在搜索引擎中首先出現,所以也許這將幫助其他人尋找在URL中隱藏文件夾名稱。
不完全是什麼原始的海報想要的,但沿着相同的路線。
RewriteCond %{HTTP_HOST} ^mydomainname\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomainname\.com$
RewriteCond %{REQUEST_URI} !^/subfoldername/
RewriteRule (.*) /subfoldername/$1
以上例子將重定向到mydomainname.com或www.mydomainname.com任何請求到在根目錄域的subfoldername目錄,子文件夾名稱將不會出現在URL中。
這也是我最初的樣子。但這意味着用戶會在地址欄中看到/pages/home.php,而服務器會提供/home.php。重新思考後,我認爲OP想要相反... – grossvogel 2010-04-11 19:35:31
@grossvogel - 你是對的 - 我更仔細地重讀他的問題。 – TMG 2010-04-11 21:18:35