Apache mod_rewrite,强制https,从根文件夹转发

时间:2012-06-05 14:26:32

标签: apache mod-rewrite

昨天我问了一个关于这个的问题但是我的httpd.conf仍然有问题。

我想要发生的是:

  • 用户请求http://www.mysite.com/mysite.com等。然后将其重定向到https://www.mysite.com/shop/

  • 我还想确保/shop子目录下的任何请求都被重写为HTTPS,即使用户输入http://www.mysite.com/shop/help/它也会被重写为{{1} }}

这是我现在的配置,但无效。

https://www.mysite.com/shop/help/

1 个答案:

答案 0 :(得分:1)

首先,确保mod_rewrite在服务器收到请求时启动。例如,将所有请求从HTTP主机重定向到HTTPS服务器

<VirtualHost *:80>
    RewriteEngine on
    RewriteRule .* https://%{HTTP_HOST}/shop/ [R,L]
</VirtualHost>

然后尝试

<VirtualHost *:80>
    RewriteEngine on
    RewriteRule ^/?shop/(.*) https://%{HTTP_HOST}/shop/$1 [NC,R=301,L]
    RewriteRule ^/?$ https://%{HTTP_HOST}/shop/ [R=301,L]

    # other directives
</VirtualHost>

<VirtualHost *:443>
    RewriteEngine on
    RewriteRule ^/?$ https://%{HTTP_HOST}/shop/ [R=301,L]

    # other directives
</VirtualHost>