mod_rewrite错误和权限被拒绝

时间:2013-01-22 16:12:54

标签: php mod-rewrite seo

我正在使用mod_rewrite将“url.com/foo”等网站重写为“url.com/index.php?site=foo”。

守则:

RewriteEngine On
RewriteBase /
RewriteRule ^([0-9a-zA-Z]+)$ index.php?site=$1

如果我点击一个带有href =“/ foo”的链接,它会给我

http://url.com/foo/?site=foo

代码在同一个V-Server上的其他站点工作,我安装了Boilerplate,但我现在不使用它的.htaccess来修复mod_rewrite,所以它不能成为样板问题,或者?

我也尝试了以下代码:

RewriteEngine On
RewriteBase /
RewriteRule ^(.*)$ index.php?site=$1

该代码至少会重写为index.php?site = foo 但它仍然会创建url,就像上面的例子一样,文件夹之间有不必要的文件夹。

编辑:确保每个人都理解整体想法:

文件基于http://url.com(index.php,.htaccess),因此我将RewriteBase设置为“/”。 它应该采取像

这样的链接
http://url.com/foo

并将其重写为

http://url.com/index.php?site=foo

没有包含文件夹。

2 个答案:

答案 0 :(得分:1)

我解决了,该死的我太愚蠢了;)

我有一个名为url.com/foo/的文件夹,并且重定向的链接为url.com/foourl.com/index.php?site=foo,所以它总是试图进入该文件夹。由于我重命名了该文件夹,因此效果非常好。

答案 1 :(得分:0)

我在RewriteRule上收到类似的错误消息

pcfg_openfile: unable to check htaccess file, ensure it is readable

我也有与重定向的URL部分类似的子文件夹名称,但重命名它并没有解决问题(正如Chris所建议的那样)。

多次尝试后,通过将子文件夹权限更新为755(使用cPanel文件夹权限对话框)解决了问题:

User:  Read, Write, Execute
Group: Read,        Execute
World: Read,        Execute

PS:我不确定在重命名之前和之后是否实际需要重命名子文件夹,错误消息是相同的。