问题
我在新域名上有一个新的TYPO3网站。旧网站的所有重要页面都指向他们的新对应部分,我在.htaccess中添加了单独的301重定向。那些工作正常!
然而,有些页面与旧网站具有完全相同的URL,我无法为(无限循环)添加单独的重定向。例如/ contact /。当我访问http://www.example-old.com/contact/页面时,只需重定向到/index.php。为什么呢?
收藏
当前设置
这是我正在使用的.htacess代码段:
<IfModule mod_rewrite.c>
# Enable URL rewriting
RewriteEngine On
RewriteBase /
# Point old domain to new domain
RewriteCond %{HTTP_HOST} ^example-old\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^example-new\.com$ [NC]
RewriteRule ^(.*) http://www.example-new.com/$1 [R=301,L]
# Point idle domains to new domain
RewriteCond %{HTTP_HOST} ^/?(?:www\.)?example-01.nl [OR]
RewriteCond %{HTTP_HOST} ^/?(?:www\.)?example-02.de [OR]
RewriteCond %{HTTP_HOST} ^/?(?:www\.)?example-03.eu [OR]
RewriteCond %{HTTP_HOST} ^/?(?:www\.)?example-04.net [OR]
RewriteCond %{HTTP_HOST} ^/?(?:www\.)?example-05.org
RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]
</IfModule>
我尝试过每一种我能找到的组合尝试让它发挥作用。这里可能出现什么问题?
很多Thanx!
答案 0 :(得分:0)
尝试删除前导“/?”内部的“?:”也从你的http主机条件中逃脱了最后一个点:
RewriteCond %{HTTP_HOST} ^(www\.)?example-01\.nl$ [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?example-02\.de$ [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?example-03\.eu$ [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?example-04\.net$ [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?example-05\.org$
RewriteRule ^(.*)$ http://www.example-new.com/$1 [R=301,L]
答案 1 :(得分:0)
如果从第一个RewriteCond中删除^
,则对旧域的所有请求都将重定向到新域。
如果您希望特定重定向具有优先级,请确保将它们放在此重定向之前。
# Point old domain to new domain
RewriteCond %{HTTP_HOST} example-old\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^example-new\.com$ [NC]
RewriteRule ^(.*) http://www.example-new.com/$1 [R=301,L]