htaccess重写地址栏

时间:2015-04-01 03:36:11

标签: .htaccess mod-rewrite

一直在尝试更改我的网址,以使他们更友好的SEO 而目前已经设法让他们如何工作 我想要它。

我原来的网址是这样的: http://www.example.com/index.php?keyword=nikon

所以设法得到这个重写,现在它看起来像这样:

http://www.example.com/compare/nikon.html

使用此:

RewriteEngine On
RewriteRule ^compare/([^/]*)\.html$ /index.php?keyword=$1 [R,NC,L]

但是我试图得到最终结果,以便地址栏中的url 是这样的:http://www.example.com/compare/nikon.html

如果我更改它以便重写的url在地址栏中就可以了 变量仍然传递,并且在有#锚标记的情况下 在网址之后它还能运作吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您希望摆脱规则中的R标记。这导致地址栏被更改为原始难看的URL。

此外,如果您想将浏览器从丑陋的URL重定向到更好看的URL,则需要一个不同的规则。如下所示:

RewriteEngine On
RewriteCond %{THE_REQUEST} \ /+index\.php\?keyword=([^&\ ]+)
RewriteRule ^ /compare/%1.html? [L,R]
RewriteRule ^compare/([^/]*)\.html$ /index.php?keyword=$1 [NC,L]