2013-01-04 41 views
0

Apache 2.2的mod_rewrite模块出现问题 我的代码在本地主机(Wamp on Win8 Pro,IPv6)以及webhotel(site5.com)上都不工作。 我的目标是生成SEO友好的URL为:Apache mod_rewrite不能正常工作

www.xy.com/featured-artists.html

代替:

www.xy.com/index ?.PHP的pageID =艺术家

的PHP变量$ pageid是在我的index.php上线1中定义:

<?php isset($_GET['pageID']) ? $pageID = $_GET['pageID'] : $pageID = 'Forside';?> 

在我的.htaccess文件中的重写代码如下:

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteRule ^([^/.]+)/?$ /index.php?page=$1 
</IfModule> 

遗憾的是不具备任何网站上的效果。 .htaccess文件虽然正常工作,因为其他部分如

ErrorDocument 404 /index.php?pageID=404 

按预期工作。 无论我做什么 - 它都无法工作。所以我真的希望你们中的一些人可以帮助我。

谢谢!

+0

@downvoter:这是一个真正的问题,格式良好并包含所有细节。为什么downvote? –

回答

1

Mod_rewrite似乎没有打开。你的规则是党环绕在IfModule容器:

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteRule ^([^/.]+)/?$ /index.php?page=$1 
</IfModule> 

所以规则都不会得到执行。如果你想要使用你的任何规则,你需要在服务器配置(或你的虚拟主机)中打开mod rewrite。否则,你尝试什么并不重要。

一旦你加载了mod_rewrite,你的规则应该接近你想要的。这将需要/something并在内部将其重写为/index.php?page=somethin