漂亮的网址没有在网址栏中显示

时间:2013-09-05 09:03:37

标签: .htaccess mod-rewrite

我有一个包含多个重定向的htaccess文件,现在我想为某个链接创建一个漂亮的URL。我尝试了下面这句话,它没有做任何事情:

RewriteEngine On
RewriteRule ^/example1.html /?page_id=100 [NC]

当我在浏览器中输入www.MyDomain.com/?page_id=100时,该网站显示,但网址仍然与我输入的相同。如何更改我的句子以在url-bar中显示example.html而不是?page_id = 100?

提前致谢

1 个答案:

答案 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文件中的规则时,会删除前导斜杠。