请求的文件没有在此服务器上找到

时间:2018-01-20 02:31:33

标签: php url-routing

我想我必须在web.config文件上写它。我的服务器没有响应.htaccess文件。我怎么能将.htaccess转换为web.config文件。请帮忙。

我使用xampp作为我的网站完全正常工作的本地服务器。 但是当我将它上传到plesk时,只有索引页面正在工作,但索引中的所有其他链接都无法正常工作。我的网站是d-subidha.com其他链接将显示如下错误。

未找到 在此服务器上找不到请求的文档。

<?php
/**
 * Front controller
 *`enter code here`
 * PHP version 7.0
 */
 /**
 * Composer
 */
require dirname(__DIR__) . '/vendor/autoload.php';
/**
 * Error and Exception handling
 */
error_reporting(E_ALL);
set_error_handler('Core\Error::errorHandler');
set_exception_handler('Core\Error::exceptionHandler');
/**
 * Sessions
 */
session_start();


/**
 * Routing
 */
$router = new Core\Router();

// Add the routes
$router->add('', ['controller' => 'Home', 'action' => 'index']);

$router->add('search', ['controller' => 'Home', 'action' => 'search']);

$router->add('login', ['controller' => 'Login', 'action' => 'new']);
$router->add('logout', ['controller' => 'Login', 'action' => 'destroy']);
$router->add('password/reset/{token:[\da-f]+}', ['controller' => 'Password', 'action' => 'reset']);
$router->add('signup/activate/{token:[\da-f]+}', ['controller' => 'Signup', 'action' => 'activate']);

$router->add('{controller}/{action}');

$router->dispatch($_SERVER['QUERY_STRING']);

这是我的.htaccess文件

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L,QSA]

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?_url=/$1 [QSA,L]

My files/folders structure for site is

2 个答案:

答案 0 :(得分:0)

你搞砸了这里配置服务器:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?_url=/$1 [QSA,L]

您实际上已将路由配置为以这种方式工作:

d-subidha.com/login

但是由于您的服务器配置,它没有在您的路由中找到任何路径,因此它给出了404.要解决此问题,请更改您的服务器重写规则。 您的网站正在使用&#34;?&#34;导航到网址。例如

d-subidha.com?login

附上工作截图。 enter image description here

答案 1 :(得分:0)

设置如下链接:

https://d-subidha.com/index.php?login

这对我有用。 或者更改您的RewriteRules。