2013-01-04 65 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