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,有人指出我做错了什么
答案 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]