.htacess - 重写规则 - 服务器配置拒绝错误客户端

时间:2015-12-13 19:00:44

标签: apache .htaccess mod-rewrite server denied

我想请求帮助。

我有这个.htaccess文件 当用户输入另一个域(也指向此主机)时,.htaccess文件用于example.com上的重定向。然后有相关的URL地址":

的规则

example.com/advert/xx导致example.com/advert.php?id=xx

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^advert/([^/]+)/?$ advert.php?id=$1 [L]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^adverts/([^/]+)/?$ adverts.php?kat=$1 [L]

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^adverts/([^/]+)/([^/]+)/?$ adverts.php?kat=$1&podkat=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

ErrorDocument 404 /404.php

问题是,它会导致这样的错误:

  

客户端被服务器配置拒绝:   的 /数据/信息网/虚函数/ 56654 /虚拟/网络/广告

我认为服务器正在调查不存在的 FOLDER广告(它只是漂亮的网址规则)。

来自托管的支持告诉我,我的.htaccess文件是错误的。 有人可以告诉我我哪里错了吗?

感谢大家的帮助。

2 个答案:

答案 0 :(得分:1)

您的第一个RewriteCond**开头。删除它们或者如果你想注释掉一些行,用#开始那些行。与行尾的第一个RewriteRule相同。

答案 1 :(得分:0)

我遇到了同样的问题,让RewriteRule在路径中包含DocumentRoot为我解决了它。

这被拒绝了:

RewriteRule ^/webapp/([\w]+) /script.cgi?id=$1

这有效:

RewriteRule ^/webapp/([\w]+) /var/www/html/script.cgi?id=$1

我的httpd.conf中确实具有目录权限。如果您不使用目录权限,这可能不是问题。