当我打开控制器时,我无法删除url中的index.php。
sitename / works。
sitename / index.php wors。
sitename / about not working。
sitename / index.php / about works
.httaccess:
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Apache2虚拟主机:
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Alias /comunion /var/www/html/boletinesUC/public
<Directory /var/www/html>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
为什么呢? 谢谢!
答案 0 :(得分:0)
在Laravel根目录中创建一个.htaccess文件(如果它尚不存在)
添加以下代码
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
现在您应该可以在没有&#34; /public/index.php /&#34;的情况下访问该网站;一部分。
答案 1 :(得分:0)
看起来您的网站位于html文件夹中的子文件夹中。您应该将DocumentRoot
更改为指向Laravel项目的公共文件夹。
将Apache2虚拟主机更改为以下
<VirtualHost *:80>
DocumentRoot /var/www/html/project_name/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
还要确保apache2.conf
中的Apache2配置具有以下配置
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
最后,不要忘记重新启动您的网络服务器
service apache2 restart