2015-05-12 45 views
2

我有一個網站的根文件夾'www',但我把所有的PHP文件,包括index.php在一個子文件夾的根。 我自己寫了一個.htaccess文件重定向,所以如果輸入www.test.com,它會跳轉到www.test.com/folder並顯示index.php如何隱藏文件夾名稱使用.htaccess

下面是我放入根目錄下的我的.htaccess

RewriteEngine On 
RewriteBase/
RewriteRule ^folder2 - [L] 
#ignore folder2 in which I put important files, but no works for the website 
RewriteCond %{REQUEST_URI} !^/folder(.*) 
RewriteRule (.*) /folder/$1 

現在,我要換.htaccess文件來實現這些目標:

  1. 當我輸入www.test.com,跳到www.test.com/folder像往常一樣,但沒有文件夾顯示的URL。
  2. 文件夾中的所有頁面將顯示沒有文件夾名稱的url。 如

    www.test.com/shop/page1 - >www.test.com/page1

我搜索了一些劇本,但他們都不工作。

+0

看看這個...... http://stackoverflow.com/questions/18361419/hide-directory-name-from-url – NinjaCat

+0

'/ shop /'與'/ folder /'有什麼關係?他們是一樣的嗎? – anubhava

回答

3

我發現這個相關的問題可以解答你的問題。從答案的片段是(注意:它調整到您的需要):

RewriteEngine On 
RewriteBase/

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+folder/([^\s]+) [NC] 
RewriteRule^%1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (?!^folder/)^(.*)$ /folder/$1 [L,NC] 

參考:https://stackoverflow.com/a/18361995/3673491

+0

我應該用根目錄中的.htaccess替換這個文件,對嗎?網站只跳轉到該文件夾​​,但url仍然是'www.test.com/folder'。 – user3404516

+0

請注意,我剛剛使用@NinjaCat建議的答案更新了代碼,並再次適合您的需求。看看它,並告訴我它現在是否正常工作。我在這裏做了一個簡單的本地測試,它工作。 請注意,您需要更改所在文件夾的所在位置,並使用您想要賦予該文件夾的實際名稱。 –

0

根據您當前的規則。你可以稍作調整。

RewriteEngine On 
RewriteBase/
#ignore folder2 in which I put important files, but no works for the website 
RewriteRule ^folder2/? - [L] 

RewriteRule ^/?$ /folder/ [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /folder/$1 [L] 
+1

這不起作用。該網站甚至不再顯示index.php頁面。 – user3404516

+0

然後您可以嘗試更新的規則。 –

+0

它仍然沒有跳躍。我應該把這個文件放在文件夾中還是保留在根目錄下? – user3404516

0

您可以使用下面的代碼。

RewriteEngine敘述在

RewriteBase/

重寫規則^ /?$ /文件夾/ [L]

的RewriteCond%{} REQUEST_FILENAME!-f

的RewriteCond%{} REQUEST_FILENAME !-d

RewriteRule ^(。*)$/folder/$ 1 [L]

相關問題