Ошибка 404 объект не найден

I have a typical set up A,M,P and i am just doing some testing on my localhost server for setting up a webpage. I’m a bit new to php and dynamic sites so I’m muddling my way though. So I am at an impasse here. Whenever I attempt to view the page in the browser and click on the links I get this error:

Object not found!
The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.
If you think this is a server error, please contact the webmaster.
Error 404
localhost
Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7

my url looks like this: http://localhost/test/content/home

here is the code for my index.php page and my nav.php page

first index.php

<?php
include('Config/setup.php');
?>
<?php
if(isset($_GET['page']) && $_GET['page'] == !'') {
    $pg = $_GET['page'];
} else {
    $pg = 'home';
}
#var_dump($pg);
#exit;
?>

<!DOCTYPE HTML>
<html>
<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">

    <title>FTS</title>
    <link href="css/Styles.css" rel="stylesheet" type="text/css">
</head>

<body>
<div class="header temp_Block">
    <?php include('templates/header.php');?>
</div>

<div class="main_nav temp_Block">
    <?php include('templates/main_nav.php');?>
</div>

<div class="main_Content temp_Block">
    <?php include('Content/'.$pg.'.php');?>
</div>

<div class="footer temp_Block">
    <?php include('templates/footer.php');?>
</div>
</body>
</html>

Here is my nav.php

<?php include('Config/setup.php')?>

 <a href="/test/content/home">home</a>
 <a href="/test/content/freestuff">free stuff</a>
 <a href="/test/content/aboutus">about us</a>
 <a href="/test/content/services">services</a>
 <a href="/test/content/Whatwedobetter">What we do better</a>

I thought this might be a permissions problem because /content/home.php is in a subfolder in xxamp/htdocs/test. But I’m not entirely sure. I could test this on a hosting site which I have but the 404 error makes me think it might be something with localhost and not with my code.

Я работал на странице входа администратора, используя php и mysqli. Когда я пытаюсь использовать свой локальный хост, я получаю эту ошибку:
Объект не найден!
Запрашиваемый URL не найден на этом сервере. Если вы ввели URL-адрес вручную, проверьте правильность написания и повторите попытку.

Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру.

Ошибка 404
локальный
Apache / 2.4.29 (Win32) OpenSSL / 1.1.0g PHP / 7.2.0

Я проверил путь и ничего плохого, поэтому я не могу понять, почему он не появится.

Она моя информация для входа в систему:

локальный: 10080 / pinkys_pearls / storeadmin / admin_login.php

Все находится в папке htdocs (используется Xampp) и до сих пор не может понять это. Вот код, который я использую:

       <?php

session_start();

if(isset($_POST['submit'])) {

include "../storescripts/connect_to_mysql.php";
$con = mysqli_connect("$db_host","$db_username","$db_pass","$db_name");
$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);

//Error handler
//Check for empty fields
if (empty($username) || empty($password)) {
header("Location: ../admin_login.php?admin_login=empty");
exit();
} else {
//Check if charactors are valid
if (!preg_match("/^[a-zA-Z0-9]*$/", $username) || !preg_match("/^[a-zA-Z0-9]*$/", $password)) {
header("Location: ../admin_login.php?admin_login=invalid");
exit();
} else {
$sql = "SELECT * FROM admin WHERE username = '$username'' AND password = '$password'";
$result = mysqli_query($con, $sql);
$resultCheck = mysqli_num_rows($result);
if ($resultCheck < 1) {
header("Location: ../admin_login.php?admin_login=invalid");
exit();
} else {
if ($row = mysqli_fetch_assoc($result)) {

$_SESSION['manager'] = $row['username'];
$_SESSION['manager_pwd'] = $row['password'];
header("Location: admin_index.php"); //relocate to index
page
exit();
} else{
echo 'username and password invalid. Please try again';
}
}
}
}

} else{
header("Location: ../admin_login.php");
exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Admin Log In </title>
<link rel="stylesheet" href="../style.css" type="text/css" media="screen" />
</head>

<body>
<div align="center" id="mainWrapper">
<div id="pageContent"><br />
<div align="left" style="margin-left:24px;">
<h2>Please Log In To Manage the Store</h2>
<form id="form1" name="form1" method="POST" action="admin_login.php">
User Name:<br />
<input name="username" type="text" id="username" size="40" />
<br /><br />
Password:<br />
<input name="password" type="password" id="password" size="40" />
<br />
<br />
<br />

<input type="submit" name="button" id="button" value="Log In" />

</form>
<p>&nbsp; </p>
</div>
<br />
<br />
<br />
</div>
</div>
</body>
</html>

Я был за это сто раз в поисках решения. Может кто-нибудь сказать мне, как исправить проблему?

Благодарю.

0

Решение

Вы отправляете кнопку с именем button

<input type="submit" name="button" id="button" value="Log In" />

Таким образом, вы должны проверить состояние с button

if(isset($_POST['button'])) {
//code goes here
}
else{
// here....
}

Атрибут type указывает тип <input> элемент для отображения Прочитайте больше.
и атрибут name указывает имя <input> элемент Прочитайте больше.

1

Другие решения

Конечно, когда вы запустите эту страницу, она будет перенаправлять вас на ../admin_login.php если $_POST['submit'] не установлен. Так что, если вы получаете эту ошибку на странице admin_login.php не найден в соответствующем месте на вашем сервере. Не перенаправлять в else раздел как $_POST['submit'] никогда не будет установлен при первой загрузке страницы.

Здесь конфликт.

if(isset($_POST['submit'])) {
//your code
}else{
header("Location: ../admin_login.php");
exit();
}

0

Простой учебный проект. Только начал изучать симфони. Сайт на OpenServer.
PHP 8.1.

Установил

composer create-project symfony/skeleton:"6.2.*" my_project_directory
composer update symfony/flex --no-plugins --no-scripts
composer require twig
composer require doctrine
composer require apache-pack
composer require symfony/asset
composer require maker

Перенес фреймворк из папки my_project_directory в корневую папку сайта.
Создал контроллер и вид для главной страницы. Работает.

Главная страница открывается в браузере по адресу http://symfony.local/public/

Вот код работающего контроллера (работают роуты любого вида — в аннотации, в ямеле, в комментарии).

<?php

namespace AppController;

use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAnnotationRoute;

class PageController extends AbstractController
{
    #[Route('/', name: 'home_page')]
    public function index(): Response
    {
        return $this->render('page/index.html.twig', [

        ]);
    }
}

Создал контроллер и вид для страницы категории. Не работает.

Страница открывается в браузере по адресу http://symfony.local/public/category и показывает ошибку 404 — Объект не найден! Запрашиваемый ресурс не найден.

<?php

namespace AppController;

use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAnnotationRoute;

class CategoryController extends AbstractController
{
    #[Route('/category', name: 'add_category')]
    public function addCategory(): Response
    {
        return $this->render('category/index.html.twig', [
            'controller_name' => 'CategoryController',
        ]);
    }
}

И так для любого контроллера. То есть работает только контроллер главной страницы. Остальные не работают. Файла .htaccess в папке public да и вообще во всем проекте нет.

Долго гуглил и нашел ответ.
Помогло

  1. в корень сайта положить файл .htaccess с содержимым:
Options -Indexes
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L,QSA]
  1. в папку public положить файл .htaccess с содержимым:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)?*$ index.php/$1 [L,QSA]

Работает. Открывает нужные страницы. Но не могу понять почему без них не работает, и зачем это надо делать руками.

Почему без этих файлов в symfony появляется ошибка 404 и как корректно её исправить? Я всё правильно сделал? Команд в файлах достаточно для дальнейшей работы ил скоро (например при работе с бд или ещё чем нибудь) снова придется что то править/добавлять?

#codeigniter

#codeigniter

Вопрос:

у меня возникли некоторые проблемы при попытке открыть другой контроллер

 http://localhost/ci/dashboard
  

получение ошибки, подобной этой:

Объект не найден!

Запрошенный URL-адрес не был найден на этом сервере. Если вы ввели URL вручную, пожалуйста, проверьте правильность написания и повторите попытку.

Если вы считаете, что это ошибка сервера, пожалуйста, свяжитесь с веб-мастером.

Ошибка 404

localhost Apache/ 2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.19


исходный код ссылки: исходный код

Комментарии:

1. Ваш вопрос неясен, что вы сделали, покажите примеры кода и url , пожалуйста.

2. попробуйте получить доступ к localhost/ci/index.php/dashboard и, пожалуйста, покажите нам содержимое вашего config.php и routes.php

3. Да, я могу получить доступ с помощью localhost/ci/index.php/dashboard, но как я могу получить доступ к localhost/ci/dashboard

Ответ №1:

Если вы используете сервер WAMP, откройте файл «httpd.conf», найдите
«LoadModule rewrite_module modules / mod_rewrite.so» и удалите # which в начале той же строки .. и
перезапустите сервер WAMP

Затем добавьте этот код в свой файл .htaccess, который находится в папке codeigniter (если нет, создайте его в корне папки):

RewriteEngine на
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php /$0 [PT,L]

Ответ №2:

сначала проверьте, работает ли apache уже или нет, и может попытаться открыть проблему с портом локального хоста и обычно, когда в эффекте ci enksripsi открывается веб-страница

Комментарии:

1. Ваш ответ неясен. Не могли бы вы улучшить ее, добавив знаки препинания, чтобы мы могли вас понять.

Добрый день всем. У меня типичная настройка A,M,P, и я просто провожу тестирование на своем локальном сервере для настройки веб-страницы. Я немного новичок в php и динамических сайтах, так что я путаюсь, хотя. Так что я в тупике. Всякий раз, когда я пытаюсь просмотреть страницу в браузере и нажимать на ссылки, я получаю эту ошибку:

Объект не найден! Запрашиваемый URL не найден на этом сервере. Ссылка на ссылающейся странице кажется неправильной или устаревшей. Пожалуйста, сообщите автору этой страницы об ошибке. Если вы считаете, что это ошибка сервера, обратитесь к веб-мастеру. Ошибка 404
localhost
Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7

my url looks like this: http://localhost/test/content/home

вот код моей страницы index.php и моей страницы nav.php

первый index.php

<?php
include('Config/setup.php');
?>
<?php
if(isset($_GET['page']) && $_GET['page'] == !'') {
    $pg = $_GET['page'];
} else {
    $pg = 'home';
}
#var_dump($pg);
#exit;
?>

<!DOCTYPE HTML>
<html>
<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">

    <title>FTS</title>
    <link href="css/Styles.css" rel="stylesheet" type="text/css">
</head>

<body>
<div class="header temp_Block">
    <?php include('templates/header.php');?>
</div>

<div class="main_nav temp_Block">
    <?php include('templates/main_nav.php');?>
</div>

<div class="main_Content temp_Block">
    <?php include('Content/'.$pg.'.php');?>
</div>

<div class="footer temp_Block">
    <?php include('templates/footer.php');?>
</div>
</body>
</html>

Вот мой nav.php

<?php include('Config/setup.php')?>

 <a href="/test/content/home">home</a>
 <a href="/test/content/freestuff">free stuff</a>
 <a href="/test/content/aboutus">about us</a>
 <a href="/test/content/services">services</a>
 <a href="/test/content/Whatwedobetter">What we do better</a>

Я думал, что это может быть проблема с разрешениями, потому что /content/home.php находится в подпапке в xxamp/htdocs/test. Но я не совсем уверен. Я мог бы проверить это на хостинге, который у меня есть, но ошибка 404 заставляет меня думать, что это может быть что-то с localhost, а не с моим кодом.

Вся помощь приветствуется и спасибо заранее.

2013-02-23 22:36

11
ответов

В основном ошибки такого рода вызваны отсутствием файла.htaccess в корневом каталоге WordPress, однако, чтобы проверить это, обратитесь непосредственно к структуре постоянных ссылок и попробуйте изменить постоянную ссылку и нажать «сохранить», как только обнаружите ту же ошибку Вы должны непосредственно создать файл.htaccess в корне WordPress и сделать для него первые права доступа 777, а затем обновить свой сайт, нажав на изменение сохранения в вашей постоянной ссылке, как только ваш сайт продолжит работать правильно, как вы ожидали, вы должны немедленно вернуться к.htaccess и измените его на 644, чтобы обезопасить свой сайт. Я полагаю, что это произошло в большинстве постоянных настроек WordPress, надеюсь, это будет полезно для всех, кто сталкивается с такой проблемой.

2015-07-18 10:08

Вы не указали свой проект как правильный путь.

  • Так что беги XAMPP control panel затем начните apache а также MySQL
  • Затем обратите внимание на порты.
  • Например, PORT 80: тогда вы набираете URL вашего браузера как localhost:80 нажмите enter, теперь ваша основная страница конфигурации php видна.
  • Затем создайте любую папку на xampphtdocsYourFloderName Затем создайте файл php, затем сохраните его и перейдите в браузер, затем введите его localhostYourFolderName Теперь он перечислил файлы, щелкните файл и он запустится.

2014-01-31 05:30

Написать в файле конфигурации

$config['base_url'] = 'http://localhost:8000/test/content/home/';

2018-05-20 11:52

Просто мой проект не был в htdocs, поэтому он показывал мне эту ошибку, убедитесь, что вы поместили свой проект в HTdocs, а не в каталог внутри него

2016-04-17 15:22

Сначала проверьте, что сообщает ваш php об ошибках. И определить широкий корень приложения в biginning вашего index.php

define ('APPROOT', realpath(dirname(__FILE__)));

а затем использовать его, чтобы включить ваши файлы

include(APPROOT.'templates/header.php');

и так далее… А для вас.htaccess вы переписываете правило?

2013-02-23 23:16

У меня тоже была такая же ошибка, но с применением codeigniter. Я изменился

  • мой базовый URL в config.php на мой путь к локальному хосту
  • в htaccess я изменил RewriteBase /»имя моей папки в htdocs»

    и я могу войти в свое приложение.

Надеюсь, это поможет.

2017-04-04 12:19

Я обнаружил, что ваша папка, содержащая ваши файлы php/html, не может иметь то же имя, что и папка в HTDOCS, в которой находится ваш проект.

2020-02-16 21:28

Если вы столкнулись с этим в реагирующем интерфейсе , удалите метод из формы

      <form method="POST">
...rest of your code
</form>

к

      <form>
...rest of your code
</form>

2021-12-19 14:57

Возможно, вы назвали PHP-файл index.php.php.

Это простая ошибка, но может потребоваться много времени, чтобы понять.

2017-10-23 04:58

Это Config/setup.php файл на самом деле в /test/content/home/ или в вашем документе есть корень? Лучше всего делать все ссылки относительно корня вашего документа.

include $_SERVER['DOCUMENT_ROOT'] . "Config/setup.php";

Ваш текущий код предполагает, что местоположение setup.php в /text/content/home/Config/setup.php, это правильно?

2013-02-23 22:41

Если страница, которую вы посещаете, это index.php, тогда ваш URL должен выглядеть так

http://localhost/test/content/home/ OR http://localhost/test/content/home/index.php

not the way you specified - http://localhost/test/content/home

2013-02-23 23:06

Понравилась статья? Поделить с друзьями:
  • Ошибка 404 нот фаунд что значит
  • Ошибка 404 для index php
  • Ошибка 404 но при этом страница существует
  • Ошибка 404 гугл что это такое
  • Ошибка 404 ничего не найдено