0
这个特定的代码适用于一台服务器,但不适用于其他服务器。工作的人有Apache2,另一个是Apache1。我怎样才能使它在两个方面都有效?htaccess mod_rewrite HTTP 500错误
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase/
# SEO translation
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?:[a-z]{2}/)?.*-p-([0-9]+)$ page.php?page_id=$1&%{QUERY_STRING}
RewriteRule ^(?:[a-z]{2}/)?(.*) $1?%{QUERY_STRING}
</IfModule>
输入URL方案:
- www.domain.com/some-fancy-title-p-10
- www.domain.com/en/some-fancy-title-p -10
- www.domain.com/sv/some-fancy-title-p-10
Negative houston,仍然HTTP 500.甚至没有“RewriteRule^/?(?:[az] {2} /)?。* - p - ([0-9] +)$ page.php?page_id = $ 1 &。%{QUERY_STRING}“.htaccess中的作品。 – tim
@tim您是否有权访问vhost/server config来打开重写日志记录以查看规则是否正在执行?你确定* mod_rewrite是在Apache1.3配置中加载的吗? (它们可能位于与Apache2不同的地方) –
不,很遗憾没有这样的访问。由于更简单的规则起作用,所以加载了mod重写。此外,不应该阻止HTTP 500,如果它没有加载? –
tim