0

新しいサイト/サーバーで .htaccess コードを再利用しようとしていますが、正しく機能しません。私は URL 書き換えの専門家ではないので、誰かが私の構文が間違っているかどうか、またはサーバー側を確認する必要があるかどうかを確認していただければ幸いです。

次のコードを使用しています。

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

これは第 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 に答える