【问题标题】:mod_rewrite for two different pages两个不同页面的 mod_rewrite
【发布时间】:2011-07-03 20:11:20
【问题描述】:

我有两页:

categories.php 

在 categories.php 页面中,我获取所有类别。

news.php

在新闻页面中,我通过 id 获取新闻。

我已经使用 mod_rewrite 进行分类:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-/]+)$ categories.php?url=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ categories.php?url=$1

site/categori1 ----> this rule works for categorie page

是否可以打开 mod_rewrite 两个不同的页面?(categories.php 和 news.php)

重写规则 ^([a-zA-Z0-9-/]+)$ news.php?url=$2 重写规则 ^([a-zA-Z0-9-/]+)/$ new.php?url=$2

site/news-title1 上面的规则不适用于 news.php 页面。

如何将 mod_rewrite 用于两个不同的页面? 提前致谢

【问题讨论】:

    标签: mod-rewrite


    【解决方案1】:

    您必须更具体地说明您的正则表达式匹配的内容:

    '^([a-zA-Z0-9-/]+)$' 将匹配几乎所有内容。

    您需要确定类别页面与新闻页面的区别并与之匹配,例如:

    RewriteRule ^category/([a-zA-Z0-9-/]+)$ categories.php?url=$1
    RewriteRule ^category/([a-zA-Z0-9-/]+)/$ categories.php?url=$1
    RewriteRule ^news/([a-zA-Z0-9-/]+)$ news.php?url=$1
    RewriteRule ^news/([a-zA-Z0-9-/]+)/$ news.php?url=$1
    

    您可以通过其他方式区分规则,但您必须这样做。

    例如,您可以重新排列我上面建议中的规则,以使类别规则捕获不以新闻为前缀的所有内容:

    RewriteRule ^news/([a-zA-Z0-9-/]+)$ news.php?url=$1
    RewriteRule ^news/([a-zA-Z0-9-/]+)/$ news.php?url=$1
    RewriteRule ^([a-zA-Z0-9-/]+)$ categories.php?url=$1
    RewriteRule ^([a-zA-Z0-9-/]+)/$ categories.php?url=$1
    

    【讨论】:

      【解决方案2】:

      www.site.com/news-title1www.site.com/category1 基本上匹配相同的 URL,因此 mod_rewrite 无法最终决定重定向到哪里。除了您已经拥有的之外,我还建议您进行以下操作:

      RewriteEngine On
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^news-([a-zA-Z0-9-/]+)/?$ news.php?url=$1 [L,NC,QSA]
      RewriteRule ^([a-zA-Z0-9-/]+)/?$ categories.php?url=$1 [L,NC,QSA]
      

      现在www.site.com/news-some-title 类型的 URI 将被转发到 www.site.com/news.php?url=some-title任何以 news- 开头的内容

      www.site.com/some-category 类型的 URI 将被转发到 www.site.com/category.php?url=some-category

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-21
        相关资源
        最近更新 更多