我正在尝试在Linux服务器CentOS 7 OS上设置CakePHP 3。我使用composer创建了一个项目,所有内容都以正确的权限正确安装。在我的虚拟主机文件中,我根据official document
配置了配置文件server {
listen 80;
server_name remote.inodd.com;
## redirect http to https ##
rewrite 301 https://$server_name$request_uri permanent;
#rewrite 301 https://$server_name$request_uri permanent;
}
server {
# listen 80;
listen 443 ssl;
server_name remote.inodd.com;
ssl_certificate /home/vhost/www/domain/ssl/self-ssl.crt;
ssl_certificate_key /home/vhost/www/domain/ssl/self-ssl.key;
# note that these lines are originally from the "location /" block
root /home/vhost/www/domain/public_html;
index index.php;
access_log /home/vhost/www/domain/logs/access_log;
error_log /home/vhost/www/domain/logs/error_log;
location / {
#try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?url=$request_uri;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
所以当我浏览网址https://remote.inodd.com/development/时,我会看到显示cakephp配置状态的默认登录页面。一切都检查正常甚至数据库连接。但我得到的警告是重写没有正确配置。
您的服务器上未正确配置网址重写。
1)帮我配置
2)我不/不能使用URL重写
我不知道我在这里缺少什么,因为我能够设置非cakephp网站并且它们工作正常。
答案 0 :(得分:0)
如果您的域在vhost中有conf文件,请将此行添加到您的vhost domain.conf文件中。
location / {
try_files $uri $uri/ /index.php?$uri&$args;
rewrite ^/$ /app/webroot/ break;
rewrite ^(.*)$ /app/webroot/$1 break;
}
location /app/ {
rewrite ^/$ /webroot/ break;
rewrite ^(.*)$ /webroot/$1 break;
}
location /app/webroot/ {
if (!-e $request_filename){
rewrite ^(.*)$ /index.php break;
}
}
主要问题是cakephp有3种不同的htaccess, 首先是项目的主要目录 第二个是在app文件夹中 第三是webroot文件夹。 所以我们必须处理所有这些。我找到了这样的解决方案。