0

サイトの URL のリダイレクトに少し問題があります。これは私の .htaccess ファイルです:

RewriteEngine On 

# Start –301 redirect for "http://" to "http://www"

Options +FollowSymLinks

rewritecond %{http_host} ^example.com [nc]

rewriterule ^(.*)$ http://www.example.com/$1 [r=301,L]

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /?(.*)/index\.php
RewriteRule ^(.*)$ /%1/ [L,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

これは問題なく動作します。すべての URL は、/index.php がなくても完全に機能します。

しかし、私の問題は、誰かがindex.php(例として)URLを入力したときhttps://example.com/index.php/testです。したがって、それも機能します。これは問題です。ユーザーが /index.php に URL を入力すると、同じページにリダイレクトされずにリダイレクトされることを望みます/index.php。これを整理するのを手伝ってください。

4

1 に答える 1

0

既にあるルールのにこれを追加してみてください:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /?(.*)/index\.php
RewriteRule ^ /%1/ [L,R=301]

リクエスト URI と照合しようとすると、既にあるルールがリクエストを index.php にルーティングし、リクエスト URIindex.php に書き換えて、書き換えエンジン ループ時に一致させるため、ループが発生します。

于 2013-03-07T10:37:46.403 に答える