【问题标题】:mod_rewrite rewrite url using .htaccessmod_rewrite 使用 .htaccess 重写 url
【发布时间】:2012-10-22 11:07:52
【问题描述】:

我在谷歌和这里搜索了一个教程来帮助我重写我的网址。 我希望有人解释我必须写什么以及为什么。

我有这个网址:

http://iescup.eu/tournaments.php?tourney[id]=1
http://iescup.eu/tournaments.php?tourney[id]=2
http://iescup.eu/tournaments.php?tourney[id]=3

等等

我想要这个网址:

http://iescup.eu/#!/tourneys/1
http://iescup.eu/#!/tourneys/2
http://iescup.eu/#!/tourneys/3

等等

真诚的 符文纳德鲁普达尔

【问题讨论】:

    标签: .htaccess mod-rewrite rewrite rule


    【解决方案1】:

    因此,您在浏览器的 URL 地址栏中键入 http://iescup.eu/tournaments.php?tourney[id]=1。请求 /tournaments.php?tourney[id]=1 被发送到服务器 iescup.eu。在该服务器上,文档根目录中的 htaccess 文件中的这些规则:

    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^tourney\[id\]=([0-9]+)$ [NC]
    RewriteRule ^/?tournaments.php$ /#!/tourneys/%1? [L,R=301,NE]
    

    %{QUERY_STRING} 变量被匹配,数字 ID 由 %1 分组和反向引用。该规则的目标在末尾有一个? 以删除查询字符串,并使用了NE 标志,因此# 不会被编码。

    该规则将浏览器重定向到http://iescup.eu/#!/tourneys/1,从而更改 URL 地址栏。然后,浏览器向 iescup.eu/ 发送另一个请求。请注意,#!/tourneys/1 片段永远不会发送到服务器。片段只是客户端,用于确定应如何处理内容(也由 javascript 使用)。

    【讨论】:

    • 竖起大拇指,我还有一个问题。我认为iescup.eu/#!/tourneys/1 只是显示网址,当我在浏览器中输入该链接时,它会引导我回到我网站的 index.php。我能以某种方式解决这个问题吗?
    • @RuneNaundrupDahl 它会引导你回到索引,因为 URI(没有片段是)http://iescup.eu/。我假设某处必须有一些 javascript 根据片段呈现某些内容
    • 你能举个例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 2015-02-14
    • 2020-05-14
    • 2013-03-29
    相关资源
    最近更新 更多