【发布时间】:2011-08-13 12:57:09
【问题描述】:
我“到处”都看过,但似乎无法弄清楚这一点。
我需要 htaccess 为我做两件事:
- 将所有 www 请求强制为非 www 请求
- 还要在所有页面上强制使用 http(非 ssl),但在这种情况下我需要 ssl
另外,这是一个使用永久链接的 wordpress 网站,所以我有那块 htaccess 代码 wordpress 也放在那里。但不知何故,一切正常,除了当我转到需要强制 ssl 的页面时,它只是重定向到站点的根目录。
这是我的代码的样子:
重写引擎开启 重写基础/
# Redirect from www to non-www
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301]
# Turn SSL on for secure-page
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^secure-page[/]?$
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
# Turn SSL off everything but secure-page
RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} !^secure-page[/]?$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
所以结果是:
- 任何 www 和非 www 和 http url 都被重定向到非 www 和 http -> OK
- 任何 www 和非 www 和 https url(不包括安全页面)都被重定向到非 www 和 http -> OK
- secure-page url 被重定向到站点根目录,我不知道为什么 -> 不行
有人可以帮忙吗? 谢谢
【问题讨论】: