0

我有一个 .htaccess 这样的:

Options -MultiViews
#Rewrite queries from google to the right files
RewriteEngine On

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*) /fragments/%1.html

在我的服务器(一个标准的 LAMP debian)上,它可以完美运行。一旦我将其上传到主机 (1&1),我就会收到 500 错误,并且根据 1&1 自己的策略,无法检查错误日志。

技术支持花了 2 周时间来回答我的支持请求,当他们回答时,他们将我指向一个描述 mod_rewrite 的通用页面。

任何人都可以在重写规则/条件中发现语法错误,并最终提供另一种方法来执行该规则的功能吗?

4

2 回答 2

0

使用以下内容:

Options -MultiViews
#Rewrite queries from google to the right files
RewriteEngine On

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*) http://mydomain.com/fragments%1.html?

解决了这个问题。

于 2012-11-23T12:38:11.787 回答
0

500 错误意味着服务器设置有问题(500 - 内部服务器错误)。

它可能是:

1) 您的服务器不支持 .htaccess 文件覆盖主机设置

2) 未启用重写模块

3) 在你的 htaccess 中重写的语法不正确

据我所知,您的代码是正确的。那么它可能是 1 或 2 选项。

我会建议:

1)用下面包装你的重写代码(这将检查mod-rewrite是否打开)

<IfModule mod_rewrite.c>
...
</IfModule>

2)删除所有内容.htaccess并尝试清空一个(如果仍然是 500 - 不允许覆盖)

3)我没有DirectoryIndex your_index_file在你的代码中看到。你省略了吗?

于 2012-11-23T12:20:56.917 回答