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
Apache htaccess在joomla中重定向而不登录index.php_Apache_.htaccess_Redirect_Joomla - Fatal编程技术网

Apache htaccess在joomla中重定向而不登录index.php

Apache htaccess在joomla中重定向而不登录index.php,apache,.htaccess,redirect,joomla,Apache,.htaccess,Redirect,Joomla,我在运行于Apache的Joomla 3.x站点的.htaccess文件中添加了从旧域到新域的重定向 这是我正在努力工作的代码 RewriteCond %{HTTP_HOST} !newdomain\.co\.uk$ [NC] RewriteRule ^(.*)$ http\:\/\/www\.newdomain\.co\.uk/$1 [R=301,L] 这会成功地将任何不正确的域重定向到我的新域,但不会将我放在相应的子页上 例如,我键入以下地址 http:\\old.com\calendar

我在运行于Apache的Joomla 3.x站点的.htaccess文件中添加了从旧域到新域的重定向

这是我正在努力工作的代码

RewriteCond %{HTTP_HOST} !newdomain\.co\.uk$ [NC]
RewriteRule ^(.*)$ http\:\/\/www\.newdomain\.co\.uk/$1 [R=301,L]
这会成功地将任何不正确的域重定向到我的新域,但不会将我放在相应的子页上

例如,我键入以下地址

http:\\old.com\calendar
。。。我想结束于

http:\\newdomain.co.uk\calendar
但是相反,我被引导到

http:\\newdomain.co.uk\index.php
有人能帮我让重定向工作到相应的子页面上吗

为了记录在案,Joomla站点的SEO设置如下(并且按照您的预期工作-站点页面通常不在URL中包含
index.php
,并且与菜单项别名相对应)

完整的.htaccess文件如下所示-我不知道Joomla的.htaccess定义是否影响了我设置的重定向

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

RewriteBase /
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

suPHP_ConfigPath /whatever/php.ini

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

Header set X-UA-Compatible "IE=10"
Options+FollowSymLinks
重新启动发动机
RewriteCond%{QUERY\u STRING}base64\u encode[^(]*\([^)]*\)[或]
重写cond%{QUERY_STRING}(|%3E)[NC,或]
重写条件%{QUERY\u STRING}全局(|\[|\%[0-9A-Z]{0,2})[或]
重写条件%{QUERY\u STRING}\u请求(|\[|\%[0-9A-Z]{0,2})
重写规则。*index.php[F]
重写基/
重写规则。*-[E=HTTP\U授权:%{HTTP:AUTHORIZATION}]
重写cond%{REQUEST_URI}!^/index\.php
重写cond%{REQUEST_URI}/component/|(/[^.]*|\(php | html |提要| pdf | vcf |原始))$[NC]
重写cond%{REQUEST_FILENAME}!-f
重写cond%{REQUEST_FILENAME}!-d
重写规则。*index.php[L]
suPHP\u ConfigPath/whatever/php.ini
RewriteCond%{HTTP_HOST}!newdomain\.co\.uk$[NC]
重写规则^(.*)$http\:\/\/www\.newdomain\.co\.uk/$1[R=301,L]
标题集X-UA兼容“IE=10”

提前感谢所有能够提供一些见解的人!

您之前已经在将大量内容重写到
index.php
——因此,当您在下面添加的新规则被评估时,(内部)请求URI很可能已经是
index.php


因此,请将这些新规则进一步向上移动。

您之前已经在将大量内容重写到
index.php
——因此,当您在下面添加的新规则被评估时,(内部)请求URI很可能已经是
index.php
。因此,将这些新规则进一步向上移动。哇-就这么简单。我想我的头脑中有一些编程语言,其中顺序是不相关的。这非常有效-非常感谢。如果您将响应作为单独的答案添加,我将很高兴将其标记为“正确”,并添加到您的re中p(或不管这件事如何运作!)再次感谢,CBroe。^我无法投票支持你的答案,因为我的代表目前还不够充分,但我可能会在将来更多地使用这个网站(所以希望我以后可以这样做)。再次感谢并致以最良好的祝愿。
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]

RewriteBase /
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

suPHP_ConfigPath /whatever/php.ini

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

Header set X-UA-Compatible "IE=10"