我想我必须在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]
答案 0 :(得分:0)
你搞砸了这里配置服务器:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?_url=/$1 [QSA,L]
您实际上已将路由配置为以这种方式工作:
d-subidha.com/login
但是由于您的服务器配置,它没有在您的路由中找到任何路径,因此它给出了404.要解决此问题,请更改您的服务器重写规则。 您的网站正在使用&#34;?&#34;导航到网址。例如
d-subidha.com?login
答案 1 :(得分:0)
设置如下链接:
https://d-subidha.com/index.php?login
这对我有用。 或者更改您的RewriteRules。