我不明白......
我有CMS编写,并且有一些关于“mod_rewrite”隐藏错误的奇怪问题。在apache2 error.log“mod_rewrite”中给出:
File does not exist: /home/path/to/request, referer: http://IP/request?view=1
我的$_GET
/ $_POST
请求都是空的
$_SERVER['REQUEST_URI']
没问题(返回request?view=1
)
$_SERVER['QUERY_STRING']
也是空的
我也安装Drupal CMS来测试它是否在Web服务器上出现问题,但是Drupal工作得很好...然后我将drupal“.htaccess”文件复制到我的CMS以修复mod_rewrite首选项。 (Drupal不会像我一样创建apache错误) 没有运气,我再次遇到同样的问题。
还尝试了Drupal CMS的.htaccess中的所有选项
我尝试打开RewriteLog
(多次尝试),但没有结果,没有创建单个日志文件。
我缺少什么或者......我的cms很糟糕 还有一件事,我的 CMS工作得很好在其他网络服务器上使用完全相同的文件.... ?????
RewriteEngine On
Options -Indexes
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
#tested RewriteRule ^ index.php [L]
#tested RewriteRule ^ index.php [L,QSA]
#tested Options FollowSymLinks
#tested Options -MultiViews
#tested RewriteBase /
P.S。抱歉我的英文不好
答案 0 :(得分:1)
不确定这是不是你的整个.htaccess但你需要启用重写,这是我使用的重写并且它永远不会失败:
RewriteEngine On
Options -Indexes
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]
RewriteRule
将所有(.*)
传递给index.php中的路由参数,然后我的路由器类处理控制器ect,QSA标志还允许我将额外的GET / POST值传递给任何部分的剧本。
希望有所帮助
ps我不添加RewriteCond %{REQUEST_FILENAME} !-d
因为我不允许文件夹视图而且我不提供文件夹中的内容,所有内容都通过控制器inc(images,css,js),因此不需要大多数情况下。它还可以保护像core&amp ;;这样的文件夹。模板等;)
答案 1 :(得分:0)
最后我找到了解决问题的方法! 答案非常,非常非常简单......
在apache2配置中(在Ubuntu上)我发现默认情况下<Directory
标签是重复的...我只是擦除所有目录标签并创建一个基本标记。
重新加载apache2配置,每件事情都开始正常工作