.htaccess / https重定向,具有异常的虚拟文件夹访问

时间:2009-11-01 01:26:48

标签: .htaccess redirect https virtualfilesystem

/ *这似乎与我在10天前提出的另一个问题重复(.htaccess / redirecting to https://www.example.com and virtual folder access),但是(a)我没有对我对该问题所做的更改做出任何回应,并且(b) )这个问题是上面的一个更复杂的版本,我相信保证一个新的查询* /

我的网站包含以下实体: example.com/index.html example.com/main.php example.com/SPECIAL/main.php 除了上面的内容,我还有像example.com/images/,/ css /等文件夹,脚本生成的html指向这些文件夹。

我需要以下所有的.htaccess魔法:

(a)永久将用户从“example.com”重定向到“www.example.com”(301个东西)

(b)永久性地将用户从http://www.example.com重定向到https://www.example.com(301个东西)

(c)访问example.com/的用户当然应该看index.html,但是如果他们输入
example.com/ABCDEF或者示例/ABCDEF/,他们应该是重定向到example.com/main.php?folder=ABCDEF
除非ABCDEF是真实文件夹(例如/ SPECIAL /,/ images /,/ css /等)

(d)如果用户试图访问example.com/REALFOLDER/(例如/ images /),他应该被重定向到example.com/

(e)所有这些都不应该与查看example.com/index.html

混乱

很抱歉,如果这听起来很复杂,那正是我需要的!

取值

1 个答案:

答案 0 :(得分: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]