1

次の条件で適切な .htaccess 書き換えを実行しようとすると問題が発生する

元の URL: http://example.com/foo/bar/ANYTHING (http または https のいずれか、ANYTHING はユーザーが入力したものであれば何でもかまいません)

書き換えられた URL: https://example.com/foo/bar/index.php/this/that/ANYTHING

ただし、すでに index.php が含まれているものは何も書き直さないでください。

いくつかのオプションを試しましたが、新しい URL にファイル システム パスが含まれています。

私の試み:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /foo/bar/
RewriteCond %{HTTP_HOST} example.com$ [NC]
RewriteCond %{HTTP_HOST} !index.php
RewriteRule ^(.*)$ https://example.com/foo/bar/index.php/this/that/$1 [R=301,L]
4

1 に答える 1

1

ブラウザは 301 の結果をキャッシュし、テストをより困難にするため、最初に を使用せずにルールをテストします。 ルールに満足するまで not301を追加します。.htaccess 書き換えルールをデバッグするためのヒントR=301も参照してください。

example.com複数のドメインが同じディレクトリでホストされていない限り、をテストする必要はありません。のテストindex.phpは に対するものでREQUEST_URIあり、 ではありませんHTTP_HOST

RewriteEngine On
RewriteCond %{REQUEST_URI} !index.php
RewriteRule ^/?foo/bar/(.*)$ https://example.com/foo/bar/index.php/this/that/$1 [R,L]
于 2013-01-27T22:06:11.330 に答える