0

我的 Apache 2.2 的 mod_rewrite 模块有问题 我的代码既不能在 localhost(Win8 Pro 上的 Wamp,IPv6)上也不能在 webhotel(site5.com)上工作。我的目标是生成对 SEO 友好的 URL:

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

按预期工作。不管我做什么——它都行不通。所以我真的希望你们中的一些人能帮助我。

谢谢!

4

1 回答 1

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.

于 2013-01-04T20:30:57.773 回答