Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
.htaccess 301重定向,但让某个URL通过_.htaccess_Redirect - Fatal编程技术网

.htaccess 301重定向,但让某个URL通过

.htaccess 301重定向,但让某个URL通过,.htaccess,redirect,.htaccess,Redirect,我有以下代码: Redirect 301 /forums/ http://www.example.com 所以所有的example.com/forums都会转到site.com,但我有一套分页,可以转到example.com/forums/discussions/ 我的代码把一切都搞糟了,那么我如何才能将重定向设置为仅适用于/forums/并让论坛/讨论像正常一样继续进行?您可以使用重定向匹配而不是重定向指令,该指令赋予我们正则表达式的功能 RedirectMatch 301 ^/forums

我有以下代码:

Redirect 301 /forums/ http://www.example.com
所以所有的example.com/forums都会转到site.com,但我有一套分页,可以转到example.com/forums/discussions/


我的代码把一切都搞糟了,那么我如何才能将重定向设置为仅适用于/forums/并让论坛/讨论像正常一样继续进行?

您可以使用
重定向匹配
而不是
重定向
指令,该指令赋予我们正则表达式的功能

RedirectMatch 301 ^/forums/(?!discussions) http://www.example.com

(?!discussions)
为负前瞻,如果请求URI为
/forums/discussions

您可以使用
RedirectMatch
而不是
Redirect
指令,该指令赋予我们regex权限

RedirectMatch 301 ^/forums/(?!discussions) http://www.example.com
(?!discussions)
为负前瞻,如果请求URI为
/forums/discussions

则无法通过此规则。重定向是一个“父”匹配,您不能将“子”从中排除。你必须使用mod_rewrite来获得那种控制。你不能。重定向是一个“父”匹配,您不能将“子”从中排除。您必须使用mod_rewrite来获得这种控制。