Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.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
Apache 如何从301 Redirect.htaccess中排除文件夹_Apache_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

Apache 如何从301 Redirect.htaccess中排除文件夹

Apache 如何从301 Redirect.htaccess中排除文件夹,apache,.htaccess,mod-rewrite,redirect,Apache,.htaccess,Mod Rewrite,Redirect,我在域名GooderReader.com上有一个301重定向,指向GooderReader.com/blog/ 我想建立一个论坛,并想将/forum/排除在301'd之外 这是我当前的.htaccess Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_URI} !^/forum/.*$ RewriteCond %{HTTP_HOST} ^www\.goodereader\.com$ [NC] RewriteRu

我在域名GooderReader.com上有一个301重定向,指向GooderReader.com/blog/

我想建立一个论坛,并想将/forum/排除在301'd之外

这是我当前的.htaccess

Options +FollowSymlinks

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/forum/.*$

RewriteCond %{HTTP_HOST} ^www\.goodereader\.com$ [NC]

RewriteRule ^(.*)$ http://goodereader.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^goodereader\.com$

RewriteRule (.*) http://goodereader.com/blog/$1 [R=301,L]

RewriteRule ^$ blog [L]

<IfModule mod_security.c>

SecFilterEngine Off

SecFilterScanPOST Off

</IfModule>
Options+FollowSymlinks
重新启动发动机
重写cond%{REQUEST_URI}^/论坛/*$
RewriteCond%{HTTP_HOST}^www\.goodereader\.com$[NC]
重写规则^(.*)$http://goodereader.com/$1[L,R=301]
重写cond%{HTTP_HOST}^goodereader\.com$
重写规则(.*)http://goodereader.com/blog/$1[R=301,L]
重写规则^$blog[L]
分离过滤器发动机关闭
secfilters可以关闭

从注释中,您可以通过向第二条规则添加相同的条件来解决此问题。重写条件只应用于紧随其后的规则,它们在任何方面都不是全局的

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/forum/.*$
RewriteCond %{HTTP_HOST} ^www\.goodereader\.com$ [NC]
RewriteRule ^(.*)$ http://goodereader.com/$1 [L,R=301] 

RewriteCond %{REQUEST_URI} !^/forum/.*$
RewriteCond %{HTTP_HOST} ^goodereader\.com$
RewriteRule (.*) http://goodereader.com/blog/$1 [R=301,L]

RewriteRule ^$ blog [L]
或使用直通:

RewriteEngine On

RewriteRule ^forum/ - [L]

RewriteCond %{HTTP_HOST} ^www\.goodereader\.com$ [NC]
RewriteRule ^(.*)$ http://goodereader.com/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^goodereader\.com$
RewriteRule (.*) http://goodereader.com/blog/$1 [R=301,L]

RewriteRule ^$ blog [L]

确保清除浏览器的缓存。301重定向是永久性的,浏览器将始终缓存它们。

我认为您需要重复
RewriteCond%{REQUEST\u URI}^/forum/*$
第二条
重写规则
语句之前的行。我尝试了此操作,但不起作用。您可能需要清除浏览器的缓存。我认为它起作用了。我打开了它,现在它的分辨率是404,这是好的,因为论坛软件还没有安装,但它现在为我工作。还有谁能证实吗?