我有一个非常简单的站点来测试我的在线主机上的url重写,因为我的原始应用程序在我的本地WampServer上工作正常,但没有与我的在线主机一起工作。
这是我的代码:
的index.php:
<?php
$p = $_GET['p'];
$pages = array (
'home' => 'home.php',
'about' => 'about.php',
'contact' => 'contact.php'
);
if (isset($pages[$p])) $page = $pages[$p];
else $page = 'home.php';
include $page;
?>
<!doctype html>
<html>
<head></head>
<body>
<?php echo $body; ?>
<br /><br /><br />
<a href="http://newcryo.com/">HOME</a> - <a href="http://newcryo.com/about/">ABOUT</a> - <a href="http://newcryo.com/contact/">CONTACT</a>
</body>
</html>
home.php:
<?php
$body = '
<h1>Home</h1>
This is the home page
';
?>
about.php:
<?php
$body = '
<h1>About</h1>
This is the about page
';
?>
contact.php:
<?php
$body = '
<h1>Contact</h1>
This is the contact page
';
?>
htaccess的:
Options +FollowSymLinks
RewriteEngine On
# home
RewriteRule ^$ index.php?p=home [L]
# other pages
RewriteRule ^([^/\.]+)/$ index.php?p=$1 [L]
现在,当网址为&#34; http://newcryo.com/&#34;它显示了主页内容。
但是当&#34; http://newcryo.com/about/&#34;或&#34; http://newcryo.com/contact/&#34;它没有显示任何内容,它打开about.php或contact.php直接不在index.php内,如主页
两者都应翻译为&#34; http://newcryo.com/index.php?p=about&#34;但在这里它呈现为&#34; http://newcryo.com/about.php&#34;
我的本地主机是WampServer,PHP 5.4.3 / Apache 2.2.22 我的远程主机是一个OVH perso共享主机,PHP 5.4 / Apache 2.2.20
有什么建议吗? 感谢。
答案 0 :(得分:2)
MultiViews
可能是个问题。
将您的选项更改为:
Options +FollowSymLinks -MultiViews