0

我有一个问题,谷歌已经用错误的 url 索引了一些页面。

他们正在索引的网址是:

1. http://www.mydomain.com/index.php?a=profile&u=john
2. http://www.mydomain.com/index.php?a=page&b=about
3. http://www.mydomain.com/index.php?a=settings&b=avatar
4. http://www.mydomain.com/index.php?a=feed
5. http://www.mydomain.com/index.php?a=feed&filter=picture
6. http://www.mydomain.com/index.php?a=post&m=32
7. http://www.mydomain.com/index.php?lang=english
8. http://www.mydomain.com/index.php?a=messages&u=john&id=4
9. http://www.mydomain.com/index.php?a=feed&logout=1

我需要它重定向到:

1. http://www.mydomain.com/john or http://www.mydomain.com/profile/john
2. http://www.mydomain.com/about or http://www.mydomain.com/page/about
3. http://www.mydomain.com/settings/avatar
4. http://www.mydomain.com/feed
5. http://www.mydomain.com/feed/picture or http://www.mydomain.com/feed/filter/picture
6. http://www.mydomain.com/message/32
7. http://www.mydomain.com/lang/english
8. http://www.mydomain.com/messages/john
9. http://www.mydomain.com/logout or http://www.mydomain.com/feed/logout

.htaccess 不是我的强项,所以任何帮助将不胜感激。

提前致谢。

编辑:

  1. 好的,我使用 Dan Trimper 和 Jon Lin 的两种方法让它工作了。首先,我使用 Dan Trimper 方法生成 mod rewrite url。例如http://www.mydomain.com/index.php?a=page&b=about,生成后会生成这样的urlRewriteRule ^([^/]*)/([^/]*)$ /index.php?a=$1&b=$2 [L]

  2. 其次,生成后,我使用第二种方法将 url 重定向到http://www.mydomain.com/page/aboutJon Lin 方法:

    RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /index.php\?a=page&b=([^&\ ]+) RewriteRule ^ /page/%1? [左,右=301]

  3. 谢谢!

编辑 2:由于冲突,无法在上面工作。更准确的解决方案转到这个主题.htaccess 友好的 URl

4

2 回答 2

1

尝试将这些规则添加到文档根目录中的 htaccess 文件中:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?a=profile&u=([^&\ ]+)
RewriteRule ^ /profile/%1? [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?a=page&b=([^&\ ]+)
RewriteRule ^ /page/%1? [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?a=settings&b=([^&\ ]+)
RewriteRule ^ /settings/%1? [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?a=feed&logout=1
RewriteRule ^ /feed/logout? [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?a=feed&filter=([^&\ ]+)
RewriteRule ^ /feed/%1? [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?a=feed
RewriteRule ^ /feed/? [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?a=feed&filter=([^&\ ]+)
RewriteRule ^ /feed/%1? [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?a=post&m=([^&\ ]+)
RewriteRule ^ /message/%1? [L,R=301]

等等等等

于 2013-08-30T01:31:54.523 回答
1

当我刚开始的时候,我对 .htaccess 并不太了解。

看看这个网站和 .htaccess 生成器 - 它帮助了我很多,我认为它会解决你的问题。

http://www.generateit.net/mod-rewrite/

它会在您配置后为您预先编写规则 - 然后复制/粘贴到您的 .htaccess 文件中。

于 2013-08-30T01:37:18.873 回答