我有一个包含多个重定向的htaccess文件,现在我想为某个链接创建一个漂亮的URL。我尝试了下面这句话,它没有做任何事情:
RewriteEngine On
RewriteRule ^/example1.html /?page_id=100 [NC]
当我在浏览器中输入www.MyDomain.com/?page_id=100时,该网站显示,但网址仍然与我输入的相同。如何更改我的句子以在url-bar中显示example.html而不是?page_id = 100?
提前致谢
答案 0 :(得分:0)
您有一条规则说:
浏览器请求时: /example1.html
然后告诉他们: /?page_id=100
它是单向的,如果浏览器请求 /?page_id=100
,它不会执行任何操作。如果你想对浏览器请求查询字符串URL做些什么,*你需要一个规则告诉mod_rewrite这样做*:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?page_id=100($|\ |&)&?([^\ ]*)
RewriteRule ^ /example1.html?%3 [L,R=301]
此外,您可能希望摆脱规则模式中的/
:
RewriteRule ^example1.html /?page_id=100 [NC]
在匹配htaccess文件中的规则时,会删除前导斜杠。