将索引页面重定向到索引页面,并在htaccess中附加了锚点

时间:2012-01-07 23:15:40

标签: apache .htaccess redirect

htaccess重定向,并希望将(domain.com,domain.com/,domain.com/index.php)上的所有访问者重定向到www.domain.com/index.php#block_1。以下是我在.htaccess中的规则

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

RewriteRule index\.php index.php#block_1 [NE]

我一直收到错误500,有人指出我做错了什么

2 个答案:

答案 0 :(得分:3)

我认为错误是因为您指定了内部(非HTTP)重定向,这恰好会将apache发送到重定向循环。

尝试:

RewriteRule index\.php index.php#block_1 [NE,R]

由于浏览器永远不会将URL字符串的锚点部分发送到服务器,因此您无法对其进行测试,因此这可能会导致客户端无限的HTTP重定向循环。

您可能需要重定向到第二页,就像这样。

RewriteRule index\.php otherpage.php#block_1 [NE,R]

mod_rewrite documentation解释了这一切。

答案 1 :(得分:0)

要转义“#”,请尝试使用规则上带有[NE,L]标志的\%23。

RewriteRule index\.php index.php\%23block_1 [NE,L]