0

私は開発しようとしているサイトを持っていますが、reWrite ルールを正しく機能させるのにいくつかの (おそらく初心者) 問題があります。

基本的に、私は codeIgniter フレームワークを使用してサイトを開発しています。その一環として、画像などの一部のフォルダーを除いて、URL の index.php 部分を削除する RewriteRule を作成しました。

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|shop)
RewriteRule ^(.*)$ /TESTSite/index.php/$1 [L]

サイトには元々page/facilities/our-shop、非常に基本的なページがあり、ペイパルへのリンクがいくつかあり、非常に大まかなショップページが必要だったため、非常に大まかなショップページを作成していました。ただし、これをもう少し専門的にし、より多くの機能を許可するために、別の(OpenCart を読む)shopショップ セクションを実装しました。openCart を というサブディレクトリに配置しました。/shop元の reWrite ルールから除外したため、ショップは引き続き正しく機能します。

ただし、私の問題...古いページpage/facilities/our-shopをにリダイレクトして、/shopそこに直接移動したかのように動作させたい..

私は次のことを試しました:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|shop)
RewriteRule ^page/facilities\/our-shop$  /TESTSite/shop/$1 [R,NC,L]
RewriteRule ^(.*)$ /TESTSite/index.php/$1 [L]

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|shop)
RewriteRule ^page/facilities\/our-shop$  /TESTSite/shop/$1 [N]
RewriteRule ^(.*)$ /TESTSite/index.php/$1 [L]

他にもいくつかのバリエーションがありますが、毎回うまくいきません。誰でもアドバイスできますか?

ありがとう

4

1 に答える 1

2

次のルールを試すことができると思います。

RewriteEngine on
RewriteRule TESTSite/page/facilities/our-shop$  /TESTSite/shop/$1 [R=301]

RewriteCond %{REQUEST_URI} !^(index\.php|images|css|js|robots\.txt|shop)
RewriteRule ^TESTSite/page/(.*)$ /TESTSite/index.php/$1 [L]

2つのこと:

  • を使用する場合はRewriteCond、次のルールにのみ適用されます。それで、2行を並べ替えました。
  • ルールの\前に aは必要ありません。/

このツールをチェックして、ルールをデバッグします。

于 2013-10-26T09:20:48.860 に答える