Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Apache重定向到另一个文件夹_Php_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php Apache重定向到另一个文件夹

Php Apache重定向到另一个文件夹,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,在我的应用程序中,我的域指向index.php。我有一个名为“mod”的文件夹,我想将所有请求从“mod”文件夹重定向到index.php 这是我在站点启用的conf文件中的规则,但它不起作用,这意味着我仍然可以从url访问mod文件夹中的文件 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^mod/.* http://domain.com/ [R=301,L] <

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


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

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

重新启动发动机
重写基/
重写规则^mod/*http://domain.com/ [R=301,L]

有人能告诉我这里有什么问题吗?

你的规则是这样的:

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]

我仍然可以访问mod文件夹中的文件@阿努巴瓦我编辑了我的问题,没有任何效果。我在两个地方都试过了。我在我的mod文件夹中创建了htaccess文件,并进行了尝试。但它不工作。htaccess已启用。如果我在.htaccess文件中放入任何随机字符串,它将生成500(内部服务器)错误,并且它正在工作。但问题是它没有重定向。似乎它包含index.php,没有应用css。我认为它应该重定向。它应该重定向到index.php吗?是吗?是的。成功了。所以,R代表重定向。不是吗?但这对ajax调用有用吗?实际上mod folder是用于ajax调用的。它不适用于ajax调用。对于ajax,它应该可以工作