有这样的错误。
将Redirect 301
规则添加到.htaccess
文件时,如:
Redirect 301 "/page1.html" "/dir1/"
我的网站因500服务器错误而失败,在apache错误日志中出现此错误:
[Wed Mar 16 11:08:52 2011] [alert] [client 127.0.0.1] /home/htdocs/site.com/www/.htaccess: Redirect to non-URL
安装了Mod重写,也试图提供没有引号的网址。
在生产服务器上,这个.htaccess工作正常,但在本地导致麻烦
请提出任何想法)
此规则有效
Redirect 301 "/page1.html" "http://www.site.com/dir1/"
但是我需要一种方法来提供相对路径而不是完整的URL(生产服务器以这种方式工作)
答案 0 :(得分:8)
将所有Redirect 301
规则更改为:
RewriteRule ^/page1.html$ /dir1/page.html [R=301,L]
现在正在工作。但它如何在生产中发挥作用?
答案 1 :(得分:1)
对我来说,我有完全相同的问题。在“/ mypage”前添加“http://domain.com”工作;我还在测试,没有像我的生产服务器上那样工作。所以我的本地测试环境中的.htaccess是这样的:
BROKEN: 重定向301 / mypage / directory1 /子目录/ mypage /
FIXED: 重定向301 http://mydomain.com/mypage http://mydomain.com/directory1/sub-directory/mypage/
答案 2 :(得分:1)
我有同样的问题,对我而言,这也不起作用:
RewriteRule ^/page1.html$ /dir1/page.html [R=301,L]
对我有用的是删除前导斜杠,并添加带有?的软拖尾斜杠,如下所示:
RewriteRule ^(page1.html)/?$ dir1/page.html [R=301,L]
答案 3 :(得分:0)
请尝试一下,它可以正常工作。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
Redirect 301 /our_clients/nike /project/nike-nofyme-campaigns
</IfModule>