我想请求帮助。
我有这个.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文件是错误的。 有人可以告诉我我哪里错了吗?
感谢大家的帮助。
答案 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中确实具有目录权限。如果您不使用目录权限,这可能不是问题。