0

サイトの1つのディレクトリをhttpsにリダイレクトしようとしています。サイトは動的であるため、ディレクトリは実際にはディレクトリではありません。CMSとしてExpressionEngineを使用しています。

.htaccessファイルには、ExpressionEngineがすべてのURLに追加するindex.phpを削除するための数行がすでにあります。

これが私が持っているものです:

<IfModule mod_rewrite.c>
        RewriteEngine On

RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} store 
RewriteRule ^(.*)$ https://mysite.com/store/$1 [R,L]

        # Removes index.php
        RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php?/$1 [L]

</IfModule>

http://mysite.com/store/にアクセスすると、https: //mysite.com/store/store/が返されます。

私はそれが以下と関係があるかもしれないと思います:

    RewriteRule ^(.*)$ /index.php?/$1 [L]

上記の行には、「入力ファイルがありません」というエラーが発生したため、index.phpの後に疑問符が付いています。これが推奨される修正です。

何かご意見は?

4

2 に答える 2

0

この行は次のとおりです。

RewriteCond %{REQUEST_URI} store 

!「ストア」の前にある必要があります。

RewriteCond %{REQUEST_URI} !store 

URIが既に/store.

于 2012-11-30T06:36:21.370 に答える
0

行を編集しました:

RewriteRule ^(.*)$ https://mysite.com/store/$1 [R,L]

読むために:

RewriteRule ^(.*)$ https://mysite.com/$1 [R,L]

今では動作します。完全なコードは次のとおりです。

<IfModule mod_rewrite.c>
        RewriteEngine On

        RewriteCond %{SERVER_PORT} 80
        RewriteCond %{REQUEST_URI} store 
        RewriteRule ^(.*)$ https://mysite.com/$1 [R,L]

        # Removes index.php
        RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php?/$1 [L]

</IfModule>
于 2012-12-01T20:52:08.323 に答える