xampp apache重写不起作用
Posted
技术标签:
【中文标题】xampp apache重写不起作用【英文标题】:xampp apache rewrite not working 【发布时间】:2016-06-21 00:00:47 【问题描述】:我在 htdocs 中有一个名为 crm 的文件夹,其中包含一个新的 laravel 5.1 项目,我正在尝试通过http://localhost/crm/ 访问它 但它只是带来了包含目录内容的页面索引 而不是在我的 routes.php 中映射的页面为
Route::get('/', function ()
return view('panel');
);
我已检查 httpd.conf 中是否启用了 apache mod_rewrite
LoadModule rewrite_module modules/mod_rewrite.so
DocumentRoot "C:/xampp/htdocs"
<Directory "C:/xampp/htdocs">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
那么 crm/public 文件夹中的 .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>
我也试过改成
Options +FollowSymLinks
RewriteEngine On
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]
没有成功。
【问题讨论】:
【参考方案1】:您需要将 Laravel 指向 public
目录才能使其工作。例如,如果您已将 Laravel 安装在 C:/xampp/htdocs/
目录中,则需要使用以下设置:
DocumentRoot "C:/xampp/htdocs/public"
<Directory "C:/xampp/htdocs/public">
请勿在公用文件夹中编辑.htacces
。尝试更改设置并首先访问 localhost
加载 Laravel 网站。
当您编辑完 Apache 配置文件后,您应该重新启动 Web 服务器。
【讨论】:
我这样做了,但现在我遇到了资产(css 和 js)无法加载的问题,除非我将它们移动到公用文件夹。我应该这样做还是有其他方法? CSS 和 JS 只能位于public
文件夹中。这就是 Laravel 的工作原理。以上是关于xampp apache重写不起作用的主要内容,如果未能解决你的问题,请参考以下文章
当我在 VirtualHost 中更改 ServerName 时,Apache (xampp) 不起作用
.htaccess 在 xampp 和 Ubuntu 下不起作用