【发布时间】:2015-07-08 01:18:01
【问题描述】:
我敢打赌,这个问题已经被问过一遍又一遍,但我似乎无法得到答案。无论如何,这是我的情况。我有一个域,比如说 example.com。 Example.com 工作正常,一切正常。但是,如果我导航到在我的本地计算机上运行的 Example.com/about,我会收到 404 错误。但是,如果我访问 example.com/index.php/about,about 页面可以正常工作。我知道这一定是一个mod重写问题。我已启用 mod rewrite 并重新启动我的服务器无济于事。无论如何,这里有一些代码:
虚拟主机:
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/example/public"
<Directory "/var/www/example/public">
AllowOverride all
Allow from All
</Directory>
</VirtualHost>
这是我的 .htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
我在 Digital Ocean Droplet 上使用 Ubuntu 14.04。
谢谢!
【问题讨论】:
-
快速提问,.htaccess 是在
/var/www/example/public目录中还是在/var/www/example/中?还要检查 .htaccess 文件的文件权限,因为 php 可能无法访问它。 -
它在 /var/www/example/public
-
所以我敢打赌这是一个文件权限问题。我以前在 Laravel 上遇到过这种情况。根据您执行 chmod、chown 的位置和方式,您很可能没有包含隐藏的 .htaccess,因为它以 .
-
我应该将 .htaccess 文件权限更改为什么?
-
php 服务器可以访问的东西。您当前的文件权限是什么?
ls -l -a
标签: php apache .htaccess mod-rewrite laravel