我想要这个网址
http://rebateninja.com/index.php?page=home
通过htaccess
进行预览我知道这并不难,而且之前我已经做过,但由于某种原因,它现在根本没有用。我的.htaccess包含以下内容:
RewriteEngine On
RewriteRule (index.php\?page=)(.*) /$2 [NC,R=301,L]
我做错了什么?也许它与我的Apache版本有关?我整个早上都失去了成功!谢谢你的回答。
答案 0 :(得分:1)
您无法与RewriteRule
中的查询字符串匹配,您需要RewriteCond
使用%{THE_REQUEST}
或%{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]
答案 1 :(得分:0)
试试这个。
RewriteRule ^index.php\?page=(.*)$ /$1 [NC,R=301,L]