0

/* 这似乎与我 10 天前提出的另一个问题重复(.htaccess / 重定向到 https://www.example.com 和虚拟文件夹访问),但是 (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 永久重定向用户。 comhttps://www.example.com(301 东西)

(c) 访问 example.com/ 的用户当然应该查看 index.html,但如果他们键入
     example.com/ABCDEF 或
     example.com/ABCDEF/
它们应该被重定向到 example.com/main.php?folder=ABCDEF
除非 ABCDEF 是一个真正的文件夹(如 /SPECIAL/、/images/、/css/ 等)

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

(e) 所有这些都不应影响 example.com/index.html 的查看

对不起,如果这听起来很复杂,但这正是我需要的!

小号

4

1 回答 1

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]
于 2009-11-05T14:11:09.067 回答