Php htaccess重定向除多个文件夹和文件之外的所有文件夹和文件

Php htaccess重定向除多个文件夹和文件之外的所有文件夹和文件,php,.htaccess,redirect,Php,.htaccess,Redirect,我一直在尝试多种不同类型的示例,但在尝试添加更多文件夹和文件作为重定向的例外时,我无法使其正常工作。我只知道这一个示例可以在我的apache localhost中运行: <IfModule mod_rewrite.c> RewriteEngine on RewriteRule !^js($|/) http://google.com [L,R=301] </IfModule> 重新启动发动机 重写规则^js($|/)http://google.com

我一直在尝试多种不同类型的示例,但在尝试添加更多文件夹和文件作为重定向的例外时,我无法使其正常工作。我只知道这一个示例可以在我的apache localhost中运行:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  !^js($|/) http://google.com [L,R=301]
</IfModule>

重新启动发动机
重写规则^js($|/)http://google.com [L,R=301]
所以基本上我想重定向除了js、css、img文件夹和getOrder.php、getCustomer.php文件之类的所有文件。在这种情况下,有人能帮忙吗?

我建议您添加一条“最后”规则,上面写着“不要触摸这些文件夹”。然后再重新定向

编辑:用包装器元素更新答案(FollowSymLink,ReWriteEngine-on)


尽管如评论中所建议的,您可以在“未找到文件”上进行重定向,这可能更合适?或者将重定向放在您不需要的文件夹中;我不想让别人读。重定向到你说“找不到”的页面也比重定向到谷歌页面要好。但这是你的决定。

我建议你添加一条“最后”规则,上面写着“不要触摸这些文件夹”。然后再重新定向

编辑:用包装器元素更新答案(FollowSymLink,ReWriteEngine-on)



尽管如评论中所建议的,您可以在“未找到文件”上进行重定向,这可能更合适?或者将重定向放在您不需要的文件夹中;我不想让别人读。重定向到你说“找不到”的页面也比重定向到谷歌页面要好。但这是你的决定。

你真的想重定向任何不存在的东西吗?我想重定向除这些文件夹和文件以外的所有东西,如果有人访问了我在htaccess中指定的其他文件夹或文件,如cookies.txt或任何其他文件,请重定向它们。我上面的代码只允许js访问,当尝试添加更多内容时,它失败了。你真的想重定向任何不存在的内容吗?我想重定向除这些文件夹和文件以外的所有内容,如果有人访问了htaccess中指定的其他文件夹或文件,如cookies.txt或任何其他文件,请重定向它们。上面的代码我只允许js访问,当尝试添加更多内容时,它失败了。我不确定,但你的例子不起作用,我仍然可以访问那些css和img文件夹,而无需重定向到谷歌。但是,如果您说找不到文件(不存在),那么就不需要做任何事情,对吗?htaccess允许您访问CSS和图像文件夹-这不是您要求的吗?列出的文件夹(或文件)是您不重定向到的文件夹。我的意思是,它仍然可以访问所有文件夹,而不仅仅是css和img文件夹。那个文件呢,你们使用的是请求文件名吗?@Ardeus我已经用包装器元素更新了答案(FollowSymLink,ReWriteEngine on)。对不起,我把它们当成了礼物。我不确定,但你的例子不起作用,我仍然可以访问那些css和img文件夹,而无需重定向到谷歌。但是,如果您说找不到文件(不存在),那么就不需要做任何事情,对吗?htaccess允许您访问CSS和图像文件夹-这不是您要求的吗?列出的文件夹(或文件)是您不重定向到的文件夹。我的意思是,它仍然可以访问所有文件夹,而不仅仅是css和img文件夹。那个文件呢,你们使用的是请求文件名吗?@Ardeus我已经用包装器元素更新了答案(FollowSymLink,ReWriteEngine on)。对不起,我把它们当成了礼物。它肯定能像我测试过的那样工作(并且再次测试!)
Options +FollowSymLinks
Options -Indexes

# These folders will not be touched.
RewriteEngine On
RewriteCond %{REQUEST_URI} "/css/" [OR]
RewriteCond %{REQUEST_URI} "/img/"
RewriteRule (.*) $1 [L]

# Then have your redirect rule
RewriteEngine On
RewriteRule  (.*) http://google.com [L,R=301]