Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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 将子域重定向到域:意外结果_Apache_.htaccess_Redirect - Fatal编程技术网

Apache 将子域重定向到域:意外结果

Apache 将子域重定向到域:意外结果,apache,.htaccess,redirect,Apache,.htaccess,Redirect,我使用此.htaccess将我的论坛从子域重定向到/forum/文件夹 #REDIRECT FORUM RewriteCond %{HTTP_HOST} ^forum\.example\.com$ RewriteRule ^ http://www.example.com/forum/%{REQUEST_URI} [R=301,L] 一切正常,但我收到了请求的意外结果: http://forum.example.com/forum/10 => http://www.example.co

我使用此.htaccess将我的论坛从子域重定向到/forum/文件夹

#REDIRECT FORUM
RewriteCond %{HTTP_HOST} ^forum\.example\.com$
RewriteRule ^ http://www.example.com/forum/%{REQUEST_URI} [R=301,L]
一切正常,但我收到了请求的意外结果:

http://forum.example.com/forum/10  =>  http://www.example.com/forum/10
一定是

http://forum.example.com/forum/10  =>  http://www.example.com/forum/forum/10
哪里出错了?

试试这个:

#REDIRECT FORUM
RewriteCond %{HTTP_HOST} ^forum\.example\.com$
RewriteRule ^/(.*) http://www.example.com/forum/forum/$1 [R=301,L]

您的.htaccess几乎没有错误。我将您的.htaccess的更正版本放在这里:

# OPTIONS
DirectoryIndex index.php index.htm index.html
AddDefaultCharset utf-8

RewriteEngine On
RewriteBase /

# REDIRECT FORUM
RewriteCond %{HTTP_HOST} ^forum\.sathyasai\.ru$ [NC]
RewriteRule ^ http://www.sathyasai.ru/forum%{REQUEST_URI} [R=301,L]

# RUN OLD_SITE
RewriteCond %{REQUEST_URI} !^/v2
RewriteCond %{DOCUMENT_ROOT}/v2%{REQUEST_URI} -f
RewriteRule (.*) /v2/$1 [L]

# RUN NEW_SITE
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule . /index.php [L]

这是我的,你可以尝试链接我不知道为什么,但是/forum/forum/$1也可以链接到single/forum。我原以为问题出在缓存(php5 apc或浏览器)上,但重启apache没有帮助。可能问题出在匹配上?我只是尝试将#REDIRECT FORUM部分放在clean.htaccess文件上,并遇到与第一条消息中描述的错误重定向相同的问题。我还注意到,将{REQUEST_URI}放在{REQUEST_URI}之前是正确的,否则我们将在论坛结束后得到双斜杠//是的,你没有在
%{REQUEST_URI}
之前使用/是正确的。你也可以在你的问题中再次发布你最新的.htaccess。最后的版本在这里。它检查一个域上的3个站点1)#旧站点2)#论坛3)#新站点。但问题只是在#重定向论坛部分更正论坛重定向。这不是我在上面的回答中建议的,你的.htaccess中有很多错误。我尝试了上面的代码,但对我的问题没有帮助。我在网站上保留代码的原因很少。首先,所有带有
/forum
的URL必须仅重定向到
/forum/index.php
,而不能重定向到
/index.php
。在那之后,我必须检查一下,
/v2
目录中是否有来自旧站点的文件并重定向到它。最后一个,将所有请求重定向到
/index.php
问题是:如果请求的URI是
/forum
,我们需要将其重定向到
/forum
,结果应该是
/forum/forum
。但是我们只有一个
/forum
具有上述重定向。