我在我的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"
提前感谢能够提供一些见解的任何人!
答案 0 :(得分:2)
您之前已经将大量内容重写为index.php
- 所以当您在下面添加的新规则被评估时,(内部)请求URI很可能 {{1已经。
所以进一步推动这些新规则。