2

我正在尝试使用 .htaccess 文件中的重写脚本为托管在 Apache 服务器(Fasthosts)上的站点上的子页面实现 301。我曾尝试遵循许多文档(事实上,我以前从未遇到过使用 .htaccess 实现 301 的任何问题!)但在这个特定的网站上,似乎没有任何效果。

目前有一个从非 www 到 www 的 301 重定向,工作正常。还有一些其他使用正则表达式的片段,我想它们是用于 CMS 的。

下面是 .htaccess 文件的当前状态。我尝试重定向的 301 示例在其中(第 5 行和第 6 行)

旧页面:http ://www.junkwize.com/home-Garden%20Clearance 到新页面:http ://www.junkwize.com/services/garden-clearance-london

.htaccess 文件:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^junkwize.com
RewriteRule (.*) http://www.junkwize.com/$1 [R=301]

RewriteCond %{HTTP_HOST} www.junkwize.com/home-Garden%20Clearance
RewriteRule (.*) http://www.junkwize.com/services/garden-clearance-london [R=301]

#Options +FollowSymlinks
RewriteRule ^.htaccess$ — [F]

RewriteRule ^([/admin]+)$ admin/login.php [L]
RewriteRule ^([/admin]+)([/blocks]+)$ admin/login.php [L]

RewriteRule ^([/blocks]+)$ index.php [L]
# RewriteRule ^([^/\.]+)-([^/\.]+)-([^/\.]+)$ index.php?main=$1&id=$2&menu=$3 [L]
RewriteRule ^([/deals]+)-([^/\.]+)$ index.php?main=$1&id=$2 [L]

# RewriteRule ^([^/\.]+)-([^/\.]+)$ index.php?main=$1&leftmain=$2 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)$ index.php?main=$1&leftmain=$2 [L]
RewriteRule ^([^/\.]+)$ index.php?main=$1 [L]

任何帮助将非常感激。

非常感谢。

4

1 回答 1

0

此代码有问题,无法正常工作:

RewriteCond %{HTTP_HOST} www.junkwize.com/home-Garden%20Clearance
RewriteRule (.*) http://www.junkwize.com/services/garden-clearance-london [R=301]

原因是RewriteCond %{HTTP_HOST}只能匹配主机名。用以下代码替换该代码:

RewriteRule ^home-Garden\ Clearance/?$ /services/garden-clearance-london [R=301,L,NC]
于 2013-08-20T10:30:14.837 回答