0

我想要这个网址

http://rebateninja.com/index.php?page=home

像这样通过 htaccess 预览

http://rebateninja.com/home

我知道这并不难,我以前也这样做过,但由于某种原因,它现在根本不起作用。我的 .htaccess 包含以下内容:

RewriteEngine On
RewriteRule (index.php\?page=)(.*) /$2 [NC,R=301,L]

我做错了什么?也许它与我的 Apache 版本有关?我整个早上都没有成功!!!感谢您的回答。

4

2 回答 2

1

您无法匹配 a 中的查询字符串RewriteRule,您需要将 aRewriteCond%{THE_REQUEST}or一起使用,%{QUERY_STRING}并使用%来反向引用分组:

RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD)\ /index\.php\?page=([^&\ ]+)
RewriteRule /%2? [L,R=301]

这会在外部重定向浏览器,以便地址栏中的 URL 发生变化。为了在内部重写它,您需要执行以下操作:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.phjp?page=$1 [L]
于 2012-10-27T21:31:54.027 回答
0

尝试这个。

RewriteRule ^index.php\?page=(.*)$ /$1 [NC,R=301,L]
于 2012-10-27T18:13:00.330 回答