【问题标题】:ModRewrite .htaccess / SEO URLs syntaxMod_Rewrite .htaccess / SEO URL 语法
【发布时间】:2012-05-08 16:35:24
【问题描述】:

我正在尝试在新站点/服务器上重新使用一些 .htaccess 代码,但它无法正常工作。我不是 URL 重写方面的专家,所以如果有人能看到我的语法是否不正确或者我需要检查服务器端的其他内容,我将不胜感激。

我正在使用以下代码:

Options +FollowSymLinks
RewriteEngine on
# News Pages
RewriteRule ^news/$ /news.php
RewriteRule ^news/(.*?)/$ /news.php?article=$1

它适用于第一级 /news/ 但 /news/article-1/ 只加载 /news/ (news.php) 概述页面。 /news.php?article=article-1 工作正常。

服务器运行 Apache 2.2.9,PHP 处于 CGI 模式。

【问题讨论】:

    标签: mod-rewrite url-rewriting


    【解决方案1】:

    试试这样:

        RewriteRule ^news/(.*?)/?$ /news.php?article=$1 [L]
        RewriteRule ^news/?$ /news.php [L]
    

    [L] 在指令末尾停止服务器检查其他指令,如果当前一条匹配。

    所以你先写更具体,然后再写更一般。

    如果您的规则作为 .htaccess 中唯一的规则正常工作,那么对它们进行这样的组织会有所帮助。

    /? - 这意味着 / 结尾可以不存在或存在

    【讨论】:

    • 还是一样,阅读一些相关问题,如果相关的话,PHP 是否在 CGI 模式下运行?
    • 添加了 /? - 阅读我的答案。 + 我想听听单独在文件中测试您的规则的结果:哪些有效,哪些无效。然后将它们组合在一起会更容易。
    猜你喜欢
    • 1970-01-01
    • 2015-02-14
    • 2012-12-25
    • 2011-05-16
    • 1970-01-01
    • 2015-10-24
    • 2015-02-26
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多