我想要这个网址
http://rebateninja.com/index.php?page=home
像这样通过 htaccess 预览
我知道这并不难,我以前也这样做过,但由于某种原因,它现在根本不起作用。我的 .htaccess 包含以下内容:
RewriteEngine On
RewriteRule (index.php\?page=)(.*) /$2 [NC,R=301,L]
我做错了什么?也许它与我的 Apache 版本有关?我整个早上都没有成功!!!感谢您的回答。
我想要这个网址
http://rebateninja.com/index.php?page=home
像这样通过 htaccess 预览
我知道这并不难,我以前也这样做过,但由于某种原因,它现在根本不起作用。我的 .htaccess 包含以下内容:
RewriteEngine On
RewriteRule (index.php\?page=)(.*) /$2 [NC,R=301,L]
我做错了什么?也许它与我的 Apache 版本有关?我整个早上都没有成功!!!感谢您的回答。
您无法匹配 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]
尝试这个。
RewriteRule ^index.php\?page=(.*)$ /$1 [NC,R=301,L]