joTla中的htaccess重定向没有登陆index.php

时间:2014-03-04 14:10:13

标签: apache .htaccess redirect joomla

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

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

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网站的搜索引擎优化设置如下(并按照您的预期工作 - 网站页面通常不包含index.php,并且对应于菜单项别名);

Search Engine Friendly URLs - YES
Use URL rewriting           - YES
Adds Suffix to URL          - NO
Unicode Aliases             - NO

COMPLETE .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"

提前感谢能够提供一些见解的任何人!

1 个答案:

答案 0 :(得分:2)

您之前已经将大量内容重写为index.php - 所以当您在下面添加的新规则被评估时,(内部)请求URI很可能 {{1已经。

所以进一步推动这些新规则。