【问题标题】:htaccess rewriting address barhtaccess 重写地址栏
【发布时间】:2015-04-01 03:36:11
【问题描述】:

一直在尝试更改我的网址以使它们对 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 在地址栏中 变量仍然被传递,并且在有锚 # 标记的情况下 在 url 之后它仍然可以工作吗?

感谢您的帮助

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案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]
    

    【讨论】:

    • 非常感谢您的帮助,但是当我尝试上述操作时,它会重写地址栏中的 url,但不会添加 .html 位
    • @OLM256 不,我忘了将它添加到规则中,请参阅上面的编辑
    • 感谢 Jon - 它现在正在添加 .html 位,但随后找不到页面
    • 试图调整您的代码,但没有真正到达任何地方 - url 的重写现在可以了,只是它没有找到页面,所以看起来好像没有通过??
    • @OLM256 是否还有其他 htaccess 文件?还有其他规则吗?
    猜你喜欢
    • 2013-02-15
    • 2013-10-02
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多