我目前正在使用以下方法将我网站上的用户从根目录重定向到子目录,如下所示:
RewriteEngine on
############################################
## Forcing https
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://website.com/$1 [R,L]
############################################
## Capturing all traffic and redirecting it to necessary subdirectory
RedirectMatch ^/$ /subdirectory/
这很有效,我仍然可以使用 / admin (完整网址:/index.php/admin)的例外情况之一。我没有必要指定任何例外 - 它只是起作用。
现在我正在尝试访问我的API网址,并设法将其重定向到/子目录而不是允许它。网址: http://website.com/index.php/api/action
我发现有一种方法可以使用 RewriteRule 方法排除目录,但是这适用于 RedirectMatch 方法呢?
RewriteEngine on
RewriteRule !^uploads($|/) http://example.com%{REQUEST_URI} [L,R=301]
答案 0 :(得分:1)
最好坚持使用mod_rewrite
,而不是在此处使用基于mod_alias
的规则:
RewriteEngine on
############################################
## Forcing https
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://website.com/$1 [R,L]
############################################
## Capturing all traffic and redirecting it to necessary subdirectory
RewriteCond %{THE_REQUEST} !\s/+(index\.php/)?(api|admin) [NC]
RewriteRule ^/?$ /subdirectory/ [L,R]