404 Not Found 在此服务器上找不到请求的 URL

问题描述 投票:0回答:13

我遇到了一些小麻烦,想知道是否有人可以帮助我渡过难关。我从 Hostgator 上下载了一个网站的副本,并尝试使用

WAMP
在本地计算机上进行设置,但是在尝试访问该网站时,我不断收到错误消息。这是我尝试过的..我转到 Apaches
httpd.conf
文件并取消注释
LoadModule
rewrite_module module/mod_rewrite.so 中的 #。另外,我已将AllowOverride None 更改为All。话虽如此,我不知道还要寻找什么。请注意,在我的应用程序中,我的
httaccess
文件前面没有
(.)
(.htaccess)
。我不确定这是否值得注意。关于我需要做什么才能访问我的网站有什么想法吗?当我访问该应用程序时,我确实看到了缓存版本(白屏),但是当我单击链接登录时,我看到了
404 Not Found

apache cakephp mod-rewrite cakephp-1.3 wamp
13个回答
45
投票

在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>  

29
投票

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

#LoadModule rewrite_module modules/mod_rewrite.so

删除#行后将如下所示:

LoadModule rewrite_module modules/mod_rewrite.so

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


14
投票

改变这个

Include conf/extra/httpd-vhosts.conf

#Include conf/extra/httpd-vhosts.conf

并重新启动所有服务


13
投票

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

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>

11
投票

在apache版本中:2.4.41

首先,启用apache重写模块:

sudo a2enmod rewrite

你需要改变

apache2.conf
不需要改变
sites-available

sudo gedit /etc/apache2/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>

然后重新启动

apache2

sudo service apache2 restart

6
投票

wamp/alias/mySite.conf 中,请小心在别名地址末尾添加斜杠“/”:

更换:

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

作者:

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

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


6
投票

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

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

因此重新启动您的服务器。


2
投票

https://create-react-app.dev/docs/deployment/

如果您使用 Apache HTTP Server,则需要在公共文件夹中创建一个 .htaccess 文件,如下所示:

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html [QSA,L]

当您运行 npm run build 时,它将被复制到构建文件夹。


1
投票

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

顺便说一下,为了接收特定的错误消息,设置

Configure::write('debug', 0); to '2' in app/config/core.php
用于开发目的。


1
投票

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

假设您的c:\windows\System32\drivers\etc\hosts中指定了

您要使用的实际域名
并且您在
apache\conf\httpd.conf
apache\conf\extra\httpd-vhots.conf
中的配置正确,您的问题可能和我的一样:

在 Apache 的

htdocs
目录中,我有一个链接到我想在浏览器中查看的实际项目的快捷方式。事实证明,Apache 不理解快捷方式。我的解决方案是创建一个正确的符号链接:

在 Windows 中,在

httdocs
目录中,我在终端中运行了以下命令:

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

这在

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


1
投票

对于我来说,使用 OS X Catalina: 从

AllowOverride None
更改为
AllowOverride All
才是有效的。

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

环境: PHP7。 MySQL8.


0
投票

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

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

0
投票

确保您的默认 apache2.conf 文件至少如下所示: 配置文件默认位置是**/etc/apache2/apache2.conf**

<Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>
© www.soinside.com 2019 - 2024. All rights reserved.