【问题标题】:Rewrite Url (URL Routing) in .htaccess在 .htaccess 中重写 Url(URL 路由)
【发布时间】:2013-01-23 15:02:21
【问题描述】:

我的目录是这样的:

http://www.mydomain.com/macbook-computer 
http://www.mydomain.com/sony-computer
http://www.mydomain.com/lenovo-computer

如果用户键入 computers/macbook-computer,我想这样做:

http://www.mydomain.com/computers/macbook-computer  

我想显示页面:http://www.mydomain.com/macbook-computer

我的限制是:

1. User must type /computers                                (segment 1)
2. String coming from computers/ must end with "computer".  (segment 2)   

如何在我的 .htaccess 文件中实现这一点?

【问题讨论】:

    标签: php .htaccess url-rewriting directory url-routing


    【解决方案1】:

    你可以试试这个:

    Options +FollowSymlinks
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/computers/([^-]+)-computer/? [NC]
    RewriteRule .*  %1-computer?  [R=301,L]
    

    永久重定向

    http://www.mydomain.com/computers/anyname-computer 带有或不带有斜杠。

    收件人:

    http://www.mydomain.com/anyname-computer

    字符串computerscomputer 假定为固定的,而anything 假定为可变的。

    必须保留传入的 URL 结构才能使规则集起作用:第一个文件夹 /computers,然后是 /anyname-computer

    对于静默映射,请从 [R=301,L] 中删除 R=301

    【讨论】:

      【解决方案2】:

      您需要在 .htaccess 文件中设置一个重写规则,以及一点正则表达式的魔力。像这样的东西应该可以解决问题

      RewriteRule ^computers/macbook-computer$ http://www.mydomain.com/macbook-computer 
      

      这是一个很好的检查重写规则的在线工具

      http://htaccess.madewithlove.be/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 2017-12-04
        • 1970-01-01
        • 2019-02-24
        • 2010-09-10
        • 2021-05-01
        • 2013-01-19
        相关资源
        最近更新 更多