我试过了我能找到的每一个例子,它们都会产生内部服务器错误。我有这些规则设置(这工作,没有错误):用mod_rewrite删除尾部斜杠
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule ^((/?[^/]+)+)/?$ ?q=$1 [L]
所以,如果它不是现有的文件或与我们的重定向index.php的现有目录。例如,http://domain.com/foo/bar
变成http://domain.com/?q=foo/bar
事情是,我想剥去尾部斜线。因此,在规则末尾取下/?
。我怎样才能让http://domain.com/foo/bar/
变成http://domain.com/foo/bar
带有明显的重定向第一个(修复客户端的URL),并且只有然后真实,无声的重定向到?q=
?
我到处看看我看到这一点:
RewriteRule (.*)/$ $1 [R,L]
但它给我,如果我在我的规则之前插入一个500错误。
你有机会获得正常Apache的错误日志?他们至少会给出导致500错误的一般描述。 – 2010-10-14 18:26:20
@Tim:我这样做,但他们似乎没有记录到错误日志。我在原始访问日志中看到它们,但没有任何用处。后面的斜杠重定向似乎是“工作的”(因为它不是错误的原因,虽然它重定向到错误的位置;这是一个单独的问题),那么脚本500就会出现在真正的规则上, 去搞清楚)。 – 2010-10-14 18:45:26
而不加入重定向规则去*/foo/bar *也可以,对吧?嗯.. – 2010-10-15 19:42:41