我有以下htaccess文件:htaccess的重寫兩個子目錄根
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/site/v1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site/v1/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^(/)?$ site/v1/ [L]
所以,當我訪問這兩個domain.com
或www.domain.com
,我直接去domain.com/site/v1
,沒有/site/v1
部分顯示在瀏覽器上。
但我的問題是,site/v1
文件夾內,有一個admin
文件夾,包含該網站的CMS,當我訪問domain.com/admin
,它重定向到domain.com/site/v1/admin
,與被顯示在瀏覽器中/site/v1
部分。
所以,我的問題是,如何在不顯示所有路徑的情況下訪問/site/v1/admin
文件夾,即當我訪問domain.com/admin
時,它訪問子文件夾但不顯示它?
在其他格式的,我有:
- 我訪問domain.com/about
- 在服務器端,我在domain.com/site/v1/about
其實是 - 在我的瀏覽器我看到domain.com/about
- PS:about
這裏是一個參數通過RewriteCond指令傳遞給我的後端(在另一段代碼),不是一個文件夾(但它的作品一樣好與文件夾)
什麼我也有:
- 我訪問domain.com/admin
- 在服務器端,我其實是在domain.com/site/v1/admin
- 在我的瀏覽器我看到domain.com/site/v1/admin
我想要什麼:
- 之前的最後一個項目是「我看到domain.com/admin
」
謝謝!
編輯
這裏的變化後,我完全htaccess文件:
# force ssl
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/site/v1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /site/v1/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^admin/$ /site/v1/admin/ [L]
RewriteRule ^(/)?$ site/v1/ [L]
謝謝您的回答其他規則,但它仍然無法正常工作,它的行爲是相同的(我試過清理緩存,不同的瀏覽器和電腦 - 只是爲了確保)。 我用我的完整htaccess文件編輯我的文章。 – LVilasBoas
你在用什麼CMS? – GeekBrett
我自己開發了它 – LVilasBoas