我正试图学习如何在.htaccess文件中重写URL。我已经阅读了一些教程,但尽管如我在示例代码中所写,没有任何事情发生在我身上!我想知道我在这里做错了什么?当我尝试下面的代码时,我得到一个404代码。在.htaccess中重写URL只会导致404错误
RewriteEngine On
RewriteRule /byggnader/1/ /?p=byggnad&id=1
这只是一个测试,我不知道是否/byggnader/
必须在URL中现有的文件或只是一个名字。我正在使用页面控制器设计。因此,URL /?p=byggnad&id=1
将在index.php
文件内打开PSelectedBuilding.php
文件。
我赞赏一些反馈,以便能够继续。
编辑:由于它不工作,尽管下面的帮助,我还添加处理请求的index.php文件中的代码。也许这可以给出一个线索为什么!?
<?php
session_start();
// Allow only access to pagecontrollers through frontcontroller
$indexIsVisited = TRUE;
require_once('config.php');
// pagecontrol
$page = isset($_GET['p']) ? $_GET['p'] : 'start';
switch($page) {
case 'start': require_once('PIndex.php'); break;
case 'karta': require_once('PMap.php'); break;
case 'byggnader': require_once('PBuildings.php'); break;
case 'tips': require_once('PTips.php'); break;
case 'visa-byggnad': require_once('PHandleSessions.php'); break;
case 'byggnad': require_once('PSelectedBuilding.php'); break;
case 'visa': require_once('PSelectedBuilding.php'); break;
case 'visa2': require_once('PHandleSessions.php'); break;
default: require_once('PIndex.php'); break;
}
require_once("CreatePage.php"); // Call file that creates the page
?>
编辑2:
这工作得很好,但不是当我使用了一些页面的请求:
RewriteEngine On
RewriteRule bilder-byggnader-kopenhamn /?p=byggnader
RewriteRule karta-byggnader-kopenhamn /?p=karta
RewriteRule start /?p=start
RewriteRule tips /?p=tips
你想要达到什么目的? – elbuild
@elbuild为了得到像WordPress –
那样更干净的URL是的,我猜对了。但是我问你要用这个规则来达到什么目的(因为它是不正确的,但是没有理解它的目的,它很难帮助你) – elbuild