我无法让我的mod_rewrite工作,因此链接从http://domain.com/page?home.php
转到http://domain.com/home
。
输入http://domain.com/
时,主页包含正确。
输入http://domain.com/404
或http://domain.com/anythinghere
时,正确包含404页面。
输入http://domain.com/home
时出现错误500,我收到此错误:File does not exist: /var/www/html/domain/Dev/home
为什么这不起作用?
我的项目如下:
目录结构:
Dev/
.htaccess
index.php
menu.php
pages/
404.php
home.php
resources/
css/
core.css
fonts/
.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(\d+)*$ ./index.php?page=$1
index.php:
<?php
if ( !isset( $_GET['page'] ) )
$_GET['page'] = 'home';
$pages = array('home');
$page = $_GET['page'];
include( 'menu.php' );
if( in_array( $page, $pages ) )
{
include( 'pages/' . $page . '.php' );
}
else
{
include( 'pages/404.php' );
}
?>
</body>
</html>
答案 0 :(得分:1)
重写应该是:
RewriteRule ^([^/]+)$ /index.php?page=$1 [L]