【问题标题】:url rewrite .htaccess : rewrite 2 pages with same ruleurl rewrite .htaccess : 用相同的规则重写 2 个页面
【发布时间】:2013-10-23 00:56:13
【问题描述】:

所以,我需要你的帮助 我正在尝试以这种方式重写 2 页

www.mydomain.com/page1.php?id=52

www.mydomain.com/52/

和另一个 page2.php 很像这样 www.mydomain.com/page2/id

我做了很多研究,我发现了这个规则

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ page1.php?id=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ users.php?id=$1

但是当我测试这条规则时 如果我在 url www.mydomain.com/page2/id 中写它会很好,但我无法获得 id 变量 throw php ($_GET) 如果我从 url (www.mydomain.com/id) 中删除 page2,它给了我 page1

那么,有可能吗?

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    那么,有可能吗?

    你的模式看起来完全一样,除了一个斜杠和另一个没有斜杠。

    所以不管这个“id”是什么,它匹配第一条规则^([a-zA-Z0-9_-]+)$,如果它没有斜杠,但匹配第二条规则^([a-zA-Z0-9_-]+)/$,如果它有斜杠。这意味着:

    www.mydomain.com/52/
    

    重写为:users.php?id=52,并且

    www.mydomain.com/52
    

    重写为:page1.php?id=52

    现在,如果你想让它在有或没有斜杠的情况下都适用,这是不可能的。 52 匹配之间没有区别。例如,如果您有以下网址:

    www.mydomain.com/1234
    

    page1.php 的吗?或users.php?两种模式完全相同,因此第一条规则始终匹配,第二条规则始终被忽略。

    【讨论】:

    • 好的....我现在明白了...所以知道如何解决这个问题吗?例如,我可以将 2 个页面之一放在一个文件夹中并应用到它特定的 .htaccess 吗?否则有什么想法吗?抱歉,我对 url 重写一无所知:( 非常感谢“Jon Lin”的回答..我很感激
    • @ManarMiroo 每个文件夹 1 个 htaccess,你不能让它只应用于 1 页。解决此问题的唯一方法是使 URL 看起来彼此不同。
    猜你喜欢
    • 2018-01-10
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2023-03-31
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多