有人可以告诉我我做错了什么。我在这里和其他地方搜索了很多关于这样做的帖子。
只想使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结尾
答案 0 :(得分:0)
看起来它需要像localhost/somepage
之类的请求,并在内部将其重写为localhost/index.php?page=somepage
,这正是您想要的。但如果有人试图前往localhost/index.php?page=somepage
,它就无法解决。为了解决这个问题,您不想重写网址,您希望将浏览器重定向到新网址:
RewriteCond %{THE_REQUEST} \ /+index\.php\?page=([^\ \&]+)
RewriteRule ^ /%1? [L,R]