如何在WAMP中使用htaccess重写URL?

时间:2014-07-08 15:36:45

标签: php apache .htaccess mod-rewrite

有人可以告诉我我做错了什么。我在这里和其他地方搜索了很多关于这样做的帖子。

只想使localhost / index.php?page = somepage看起来像localhost / somepage

这是我到目前为止所做的:

Options +FollowSymLinks -MultiViews
<IfModule mod_rewrite.c>
    RewriteEngine On 
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{SCRIPT_FILENAME} !-f 
    RewriteRule ^([0-9a-zA-Z\-]+)$ index.php?page=$1 
</IfModule>

没有任何错误,但实际上并没有任何错误。也许我有正确的代码,但在我的系统上无法做到这一点。但是想要一个亲意见。

谢谢。

也许值得一提:在root目录中有htaccess文件,所有页面都在名为“pages”的文件夹中,所有页面都以.htm结尾

1 个答案:

答案 0 :(得分:0)

看起来它需要像localhost/somepage之类的请求,并在内部将其重写为localhost/index.php?page=somepage,这正是您想要的。但如果有人试图前往localhost/index.php?page=somepage,它就无法解决。为了解决这个问题,您不想重写网址,您希望将浏览器重定向到网址

RewriteCond %{THE_REQUEST} \ /+index\.php\?page=([^\ \&]+)
RewriteRule ^ /%1? [L,R]