2009-11-01 38 views
0

/*這似乎與我在10天前提出的另一個問題(.htaccess/redirecting to https://www.example.com and virtual folder access)的副本相同,但(a)我沒有對我所做的更改作出任何響應(b)這個問題在這裏是上述更復雜的版本,我相信一個新的查詢*/.htaccess/https重定向,有例外的虛擬文件夾訪問

我有一個網站有以下實體: example.com/index.html example.com/main.php example.com/SPECIAL/main.php 除了上述內容外,我還有像腳本生成的html指向的example.com/images/,/ css /等文件夾。

我需要所有的下面的.htaccess法寶:從 「example.com」 到 「www.example.com」(301的東西)

(二)永久重定向

(一)永久地將用戶重定向從用戶http://www.example.comhttps://www.example.com(301東東)

(三)用戶訪問example.com/應該的,當然,看到index.html的,但如果他們輸入
          example.com/ABCDEF OR
          example.com/ABCDEF/
它們應該被重定向到example.com/main.php?folder=ABCDEF
除了ABCDEF是真實文件夾(如/ SPECIAL /,/ images /,/ css /等)時
(d)如果用戶試圖訪問example.com/REALFOLDER/(例如/ images /),他應該被重定向到example.com/

(e)所有這些都不應該妨礙查看示例.com/index.html

對不起,如果這聽起來很複雜,但那正是我需要的!

小號

回答

0

嘗試下列規則:

# (a) and (b) 
RewriteCond %{HTTP_HOST} =example.com [OR] 
RewriteCond %{HTTPS} !=on 
RewriteRule^https://www.example.com%{REQUEST_URI} [L,R=301] 
# (d) 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ./[L,R] 
# (c) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ main.php?folder=$1 [L]