1

我希望你能帮助我解决这个 301 问题。

介绍

我刚刚发布了一个重新设计的带有新的干净网址的网站。旧网页的网址如下:www.domain.dk/Default.aspx?ID=66。新的网站网址如下所示:www.domain.com/contact

所以我不想将所有这些旧网址重定向到新网址,因此我不会保留旧网址,也无法应用一般规则。

这只是简单的 301 重定向,但同时旧域指向一个新域,我认为这就是事情变脏的地方。旧域是 www.domain.dk,但我不想 301 将所有流量都转到新域 www.domain.com,同时我不想进行所有单独的 301 重定向。

问题

当我点击 Google 中的链接www.domain.dk/Default.aspx?ID=66时,我会在浏览器中看到这个 URL: www.domain.comindex.php/?ID=66

在其他链接上,我得到www.domain.comdefault.aspx/?ID=2

那么重定向到新域工作正常吗?但个别重定向根本不适用。

编码

这段代码是从我运行 apache 的服务器上的 .htaccess 文件中粘贴的。

第一个位由 Concrete5 CMS 自动生成以制作漂亮的 URL。

# -- concrete5 urls start --
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
# -- concrete5 urls end --

这是我发现 301 将所有流量重定向到使用 www.esvagt.com 到 www.esvagt.com的 url 的代码

## --- 301 Redirects --- ##

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L]

这只是手动 301 重定向之一。

## General - Redirects ##

redirect 301 /Default.aspx?ID=66 http://www.domain.com/contact/contact-us

提前致谢。如果您需要更多信息,我很乐意提供。我对在 .htaccess 中编写代码的知识为零,所以我一无所知。我希望你能帮忙。:)

4

2 回答 2

1
  1. 避免混合mod_rewritemod_alias规则。
  2. 规则的顺序也很重要,所以先有 301 规则,然后有你的 catch all 控制器规则

使用此代码进行 301 重定向:

## --- 301 Redirects --- ##

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.dk$ [NC]
RewriteRule ^ http://www.domain.com%{REQUEST_URI} [R=301,L]

## General - Redirects ##

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+Default\.aspx\?ID=66[&\s] [NC]
RewriteRule ^ http://www.domain.com/contact/contact-us? [R=301,L]

# -- concrete5 urls start --
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]
</IfModule>
# -- concrete5 urls end --
于 2013-10-17T07:23:07.450 回答
0

重写规则www.domain.dk/Default.aspx?ID=66 domain.com/contact/contact-us [R=301,L]

如果您想自动重定向所有帖子:

RewriteRule /Artical.aspx?ID=(.+?) domain.com/article-title-$1.html [R=301,L]
or
RewriteRule /Artical.aspx?ID=(.+?) domain.com/Post.aspx?ID=$1 [R=301,L]

然后动态 urlArtical.aspx?ID=20将被重定向到http://www.domain.com/article-title-30.html,我成功将此方法应用于我的博客http://downloadapp.info

于 2013-10-17T10:01:24.690 回答