Apache重定向到另一个文件夹

时间:2016-07-15 06:27:34

标签: php apache .htaccess mod-rewrite url-rewriting

在我的应用程序中,我的域名指向index.php。我有一个名为“mod”的文件夹,我想将所有请求从“mod”文件夹重定向到index.php

这是我在启用网站的配置文件中的规则,但它不起作用,意味着我仍然可以从url访问mod文件夹中的文件

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^mod/.* http://domain.com/ [R=301,L]
</IfModule>

有人可以告诉我这里的问题是什么吗?

1 个答案:

答案 0 :(得分:1)

你的规则如下:

RewriteEngine On

RewriteRule ^/?mod/ /index.php [L]

注意mod之前的可选前导斜杠,它将使此规则在.htaccess以及Apache配置文件中工作。我还删除了R以避免外部重定向。

编辑:

似乎ajax请求存在问题。所以我们需要通过为ajax请求发送ajax = 1来区分ajax请求并更改规则。

在mod文件夹中创建.htaccess文件并添加这些行

RewriteEngine On

RewriteCond %{QUERY_STRING} !(^|&)ajax= [NC]
RewriteRule ^ /index.php [L,R]