我刚安装了一个带有apache2的Ubuntu Web服务器。我上传了一个CakePHP项目。我也激活了rewrite_mod。
# sudo a2enmod rewrite
导航至www.mysite.ch/pierre/contacts时,请说明:
未找到
在此服务器上找不到请求的URL /联系人。
在我的本地网络服务器中,它可以工作,我可以看到联系页面
如果我删除我的项目并使用函数phpinfo()添加文件phpinfo.php,它会显示有关服务器配置的信息,而且我没有消息"找不到"
我怀疑我的重定向不起作用。 你觉得怎么样?
使Apache2服务器使用.htaccess文件的基本步骤是什么?
这是我的.htaccess文件(它是默认的cakephp文件,我没有改变它)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
这是我的httpd_conf文件
<Directory /var/www/vhosts/metauxch/httpdoc>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order Allow,Deny
allow from All
</Directory>
Alias /pierre /var/www/vhosts/pierre/httpdoc
<Directory /var/www/vhosts/pierre/httpdoc>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order Allow,Deny
allow from All
</Directory>
你有什么想法吗?
答案 0 :(得分:0)
在httpd_conf文件中将 AllowOverride无更改为 AllowOverride All
启用模式重写,
sudo a2enmod rewrite
重启apache,
sudo /etc/init.d/apache2 restart
答案 1 :(得分:0)
对不起,我忘了写但是我做了
sudo a2enmod rewrite
sudo servive apache2 restart
已完成。
我也改变了这个AllowOverride All
问题,现在是我进入
的时候它表示缺少te控制器皮尔(CakePHP)。虽然皮埃尔是根,而联系人是控制者。
第二点,当我碰上联系人(root / contacts /) 我有一个这样的网址
而不是
这里有些不对劲
Alias /pierre /var/www/vhosts/pierre/httpdoc
<Directory /var/www/vhosts/pierre/httpdoc>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
allow from All
</Directory>
当我在我常用的提供商上传相同的CakePHP项目时,我没有这个问题。
感谢
答案 2 :(得分:0)
试试这个解决方案。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ /app/webroot/ [L]
RewriteRule (.*) /app/webroot/$1 [L]
</IfModule>
CakePHP app directory (will be copied to the top directory of your application by bake):
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ /webroot/ [L]
RewriteRule (.*) /webroot/$1 [L]
</IfModule>
CakePHP webroot directory (will be copied to your application’s web root by bake):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php [QSA,L]
</IfModule>