注释掉的谷歌重定向工作正在运行,但其余规则根本不起作用。
它会自动给我500个内部服务器错误。这只发生在1and1服务器上。
RewriteEngine On
Options FollowSymLinks
# RewriteRule ^(.*)$ http://www.google.com/$1 [r=301,nc]
RewriteRule ^(ajax)/([a-zA-Z0-9-z\-]+)$ http://mysite.com/index.php?ajax=$2 [r=301,nc]
RewriteRule ^([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]+)$ http://mysite.com/index.php?page=$1&subPage=$2
RewriteRule ^([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]+)/$ http://mysite.com/index.php?page=$1&subPage=$2
RewriteRule ^repairs/([a-zA-Z0-9-z\-]+)/([a-zA-Z0-9-z\-]*)$ http://mysite.com/repairs-engine.php?page=repairs&subPage=$1&pitem=$2
RewriteRule ^([a-zA-Z0-9-z\-]+)$ http://mysite.com/index.php?page=$1
RewriteRule ^([a-zA-Z0-9-z\-]+)/$ http://mysite.com/index.php?page=$1
有什么想法吗?
由于
答案 0 :(得分:1)
有关确切的错误说明,您应该检查Apache的错误日志。
这种模式应该是什么意思[a-zA-Z0-9-z\-]
??这绝对是错的。它应该是[a-zA-Z0-9\-]
- 我很确定这是 错误的原因。
备注:强>
如果使用[NC]
标记,则无需a-zA-Z
- 只需a-z
即可。
如果进行重写(内部重定向,当URL在浏览器的地址栏中更改)而没有正确的重定向(301,302等),则无需使用完整的域名。
无论如何,我建议在所有规则中添加[L]
标志 - 它会加快处理速度。
答案 1 :(得分:0)
你有没有试过逃避char类块中的最后一个破折号?
像这样:^([A-ZA-Z0-9 - ] +)$