0

我正在尝试在新站点/服务器上重新使用一些 .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 模式。

4

1 回答 1

0

试试这样:

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

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

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

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

/?- 这意味着 / 最后可以不存在或存在

于 2012-05-08T16:46:20.783 回答