【问题标题】:404 Not Found The requested URL was not found on this server404 Not Found 在此服务器上未找到请求的 URL
【发布时间】:2013-09-22 01:57:24
【问题描述】:

我遇到了一些小麻烦,想知道是否有人可以帮助我度过难关。我从 Hostgator 中提取了一个网站的副本,并尝试使用 WAMP 在我的本地计算机上设置它,但是在尝试访问该站点时我不断收到错误消息。这是我尝试过的..我去了 Apaches httpd.conf 文件并取消了 LoadModulerewrite_module modules/mod_rewrite.so 中的 # 注释。此外,我已将 AllowOverride None 更改为 All。话虽如此,我不确定还要寻找什么。请注意,在我的应用程序中,我的httaccess 文件前面没有(.) (.htaccess)。我不确定这是否值得注意。关于访问我的网站需要做什么的任何想法?当我访问应用程序时,我确实看到了一个缓存版本(白屏),但是当我单击链接登录时,我看到了404 Not Found

【问题讨论】:

  • 您尝试访问哪个 URL 以及您希望它提取什么文件? .htaccess 中的点是必需的 smartwebdeveloper.com/apache/htaccess-problems
  • 我正在尝试访问我的登录页面 Slic/users/login。我希望它拉出登录视图。
  • 好的,我知道了。我不得不去重命名所有 .htaccess 文件。第一个在 www\Slic\.htaccess 中。下一个位于 www\Slic\app\.htaccess 中。最后一个在 www\Slic\app\webroot\.htaccess
  • 感谢您发布的那篇文章!它让我克服了困难!

标签: apache cakephp mod-rewrite cakephp-1.3 wamp


【解决方案1】:

我花了很多时间在这之后我找到了...解决方案

first -
sudo a2enmod rewrite


sudo systemctl restart apache2

this line depends on your apache2 version you found on your console copy and past ...

      sudo nano /etc/apache2/sites-available/000-default.conf


     DocumentRoot "/var/www/html"
    <Directory "/var/www/html">
            Options FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>

【讨论】:

  • 这确实有效,谁能解释一下这些权限?
【解决方案2】:

对我来说,使用 OS X Catalina: 从AllowOverride None 更改为AllowOverride All 是可行的。

httpd.conf 位于/etc/apache2/httpd.conf

环境: PHP7。 MySQL8.

【讨论】:

    【解决方案3】:

    在 Ubuntu 中我没有找到 httpd.conf,它现在可能不会退出了。 在为我工作的apache2.conf 文件中进行编辑。

    cd /etc/apache2
    sudo gedit apache2.conf
    

    这里在 apache2.conf 更改

    <Directory /var/www/>
         Options Indexes FollowSymLinks
         AllowOverride None
         Require all granted
    </Directory>
    

    <Directory /var/www/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>  
    

    【讨论】:

    • 这对我有用,但是在进行更改后,不要忘记执行:sudo a2enmod rewrite。并且: sudo systemctl restart apache2.
    • 这对我有用。谢谢!
    【解决方案4】:

    就我而言(在 Windows 上本地运行服务器)我需要在更改 httpd.conf 文件后清理缓存。

    \modules\apache\bin> ./htcacheclean.exe -t
    

    【讨论】:

      【解决方案5】:

      刚刚解决了这个问题!我知道这个问题已经很老了,但我也遇到了同样的问题,上面的答案都没有帮助解决它。

      假设您的c:\windows\System32\drivers\etc\hosts 中的actual domain name you want to use is specified 以及您在apache\conf\httpd.confapache\conf\extra\httpd-vhots.conf 中的配置是正确的,那么您的问题可能与我的相同:

      在 Apache 的 htdocs 目录中,我有一个快捷方式链接到我想在浏览器中查看的实际项目。事实证明,Apache doesn't understand shortcuts。我的解决方案是创建一个适当的符号链接:

      在 Windows 中,在 httdocs 目录中,我在终端中运行了这个命令:

      mklink /d ple <your project directory with index.html> 
      

      这在httpdocs 目录中创建了一个正确的符号链接。重新启动 Apache 服务,然后重新加载页面后,我可以看到我的网站了 :)

      【讨论】:

        【解决方案6】:

        如果您的 .htaccess 文件正常并且问题仍然存在,请尝试在您的 httpd.conf 中启用 AllowOverride 指令。如果在 Apache httpd.config 文件中将 AllowOverride 指令设置为 None,则 .htaccess 文件将被完全忽略。 httpd.config 中启用 AllowOverride 指令的示例:

         <Directory />
            Options FollowSymLinks
            **AllowOverride All**
         </Directory>
        

        因此重启你的服务器。

        【讨论】:

        • 我尝试了你的建议。我仍然收到The requested URL /login was not found on this server.
        • 修改后重启服务器
        • 我做到了。而且我仍然看到该错误,并且我已经在我的应用程序中声明了该路由。
        【解决方案7】:

        wamp/alias/mySite.conf 中,注意在别名地址的末尾添加斜杠“/”:

        替换:

        Alias /mySite/ "D:/Work/Web/mySite/www"
        

        作者:

        Alias /mySite/ "D:/Work/Web/mySite/www/"
        

        或者index.php没有正确读取。

        【讨论】:

          【解决方案8】:

          改一下

          Include conf/extra/httpd-vhosts.conf
          

          #Include conf/extra/httpd-vhosts.conf
          

          并重启所有服务

          【讨论】:

          • 我必须在哪里做这个?
          • 这是在 apache/conf/httpd.conf 中完成的,但这对我不起作用。
          【解决方案9】:

          在 httpd.conf 文件中你需要删除 #

          #LoadModule rewrite_module modules/mod_rewrite.so
          

          删除 # 行后将如下所示:

          LoadModule rewrite_module modules/mod_rewrite.so
          

          我相信你的问题会得到解决...

          【讨论】:

          • 在 Ubuntu 上,主要的 Apache 配置文件实际上是 apache2.conf 。在目录:/etc/apache2/
          • @DoNhuVy 在 ubuntu 中,将 LoadModule rewrite_module modules/mod_rewrite.so 添加到 apache.conf 中?
          • @QiankunSU ,我认为在这种情况下:apache2.conf。抱歉,目前我不使用 Ubuntu。
          • 我的 MAMP 已经取消了注释,但我仍然看到该错误 The requested URL /login was not found on this server.
          • 我是服务器部分的新手。我在 ubuntu 上找不到 httpd.conf 文件。在哪里添加该行?
          【解决方案10】:

          要将文件另存为 .htaccess,在使用 windows 时,您必须打开记事本,然后另存为 .htaccess,因为 windows 不会创建以点开头的文件。这应该让你的 .htaccess 工作,它会解决这个问题。

          顺便说一下,为了接收特定的错误信息,设置Configure::write('debug', 0); to '2' in app/config/core.php 用于开发目的。

          【讨论】:

          • 我重命名 .htaccess 的方法是打开命令提示符并执行以下命令。重命名 c:\wamp\www\app\htaccess.txt .htaccess
          猜你喜欢
          • 2014-11-19
          • 2012-09-12
          • 2020-07-01
          • 2017-10-22
          • 1970-01-01
          • 2014-11-12
          • 1970-01-01
          • 2015-05-18
          • 2014-09-27
          相关资源
          最近更新 更多