我正在尝试使用.htaccess文件中的重写脚本在我的站点上实现301的子页面,该子页面托管在Apache服务器(Fasthosts)上。我试图遵循许多文档(事实上,我以前从未使用.htaccess实现301的任何问题!)但是在这个特定的网站上,似乎没有任何工作。
目前有一个301从非www到www重新指向,这是正常的。还有其他一些使用正则表达式的片段,我想这是用于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]
非常感谢任何帮助。
非常感谢。
答案 0 :(得分: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]