首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Laravel 4中访问没有index.php的路由

无法在Laravel 4中访问没有index.php的路由
EN

Stack Overflow用户
提问于 2014-02-07 10:20:28
回答 2查看 1.8K关注 0票数 0

好的,所以我花了相当长的时间在googling上搜索这方面的建议,尽管之前在WAMPserver上在Laravel 4中设置了几个测试项目,但我不确定我在这个例子中遗漏了什么。希望我已经提供了所有必要的细节,我的设置和我已经尝试了到目前为止。

WAMPserver版本2.4,位于C:/wamp/

Apache版本2.4.4

PHP版本5.4.12

启用mod_rewrite (我可以在phpinfo()中看到它)

项目位于C:/wamp/www/wsrp/

C:/wamp/www/wsrp/public中,我有以下.htaccess文件:

代码语言:javascript
复制
<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>

在我的C:/wamp/bin/apache/Apache2.4.4/conf/httpd.conf文件中,我取消了这一行的注释:

代码语言:javascript
复制
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

在我的C:/wamp/bin/apache/Apache2.4.4/conf/extra/httpd-vhosts.conf文件中,我有以下内容:

代码语言:javascript
复制
<VirtualHost *:80>
    DocumentRoot "C:\wamp\www"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/wamp/www/wsrp/public"
    ServerName localhost
    Options Indexes FollowSymLinks
    <Directory "C:/wamp/www/wsrp/public">
        AllowOverride All
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
    </Directory>
</VirtualHost>

在我的C:/wamp/www/wsrp/app/routes.php文件中,我有一个测试路径:

代码语言:javascript
复制
Route::get('test', function() {
    echo 'Hello world!';
});

为了测试,我尝试访问这个URL:

http://localhost/wsrp/test

这不起作用,它向我展示了一个内部服务器错误页面。但是,如果我访问这个URL:

http://localhost/wsrp/index.php/test

我看到了我的“你好世界!”显示消息。

显然,我希望能够在这个项目上工作,而不是在网址中有index.php,这就是问题所在。

在我看过的所有这样的问题/答案中,他们都建议添加一个虚拟主机,我已经这样做了,在C:/wamp/www/wsrp/public/中有正确的.htaccess文件(我已经做过了),启用了mod_rewrite,我已经做了,是的。不知道还能尝试什么,或者我错过了什么。非常感谢您的帮助和建议!

编辑:

忘了提到我在C:/wamp/alias/wsrp.conf中也有一个别名文件

代码语言:javascript
复制
Alias /wsrp "c:/wamp/www/wsrp/public"

<Directory "c:/wamp/www/wsrp/public">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
    Allow from all
</Directory>
EN

回答 2

Stack Overflow用户

发布于 2014-02-07 11:03:16

首先,为什么你有一个本地主机v-主机?WAMP服务器的根目录通常是c:/wamp/wwwHOSTS已经将其映射到127.0.0.1或本地主机。那个v-主机是不相关的。

其次,由于您的c:/wamp/www目录被用来包含您的站点,httpd.conf已经包含了它需要的<Directory>详细信息,从内存中可以看出如下所示:

代码语言:javascript
复制
<Directory c:/wamp/www>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require local
</Directory>

您不需要为子目录定义任何特殊的目录信息,除非您希望添加特定的模块配置或更改任何默认值。要使vhost正常工作,只需添加以下内容:

代码语言:javascript
复制
<VirtualHost *:80>
    ServerName mylocalsite.dev
    DocumentRoot c:/wamp/www/mysite/public
</VirtualHost>

但是,我建议您放置错误日志记录/访问日志记录的位置。

票数 0
EN

Stack Overflow用户

发布于 2014-03-03 14:52:27

我也遇到过和你一样的问题。我就这样解决了这个问题。

  1. 开放C:\wamp\bin\apache\Apache2.4.4\conf/httpd.conf
  2. 然后,您可以搜索下一行,#LoadModule rewrite_module模块/mod_rewrite.so
  3. 在开始时删除磅('#')符号,保存文件.
  4. 接下来,重启您的WampServer并进行测试。

我希望能帮助你!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21625060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档