2

これは私の .htaccess ファイルです -

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 

<IfModule mod_rewrite.c>
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule ^template\.php$ - [L]
#RewriteRule ^index\.php$ - [L]
RewriteRule . /template.php [L]
</IfModule>

/template.php を介してすべてを集めるように設計されているため、残りの URL とドメインを処理します。

なんらかの理由で、URL にセミコロン (私の不動産 Web サイトのリスト クエリを構成する URL の重要な部分) が含まれていると、セミコロンが %3b に変わりますが、これは私が望んでいるものではありません。

奇妙なことに、これは 1 つの Web サイトでのみ発生しています... 私のサイトはすべて同じサーバー上にあります。

http://dev.brixwork.com/listings/city-Vancouver+West/area-Arbutus;Cambie;Coal+Harbour/order_by-create_date/order_direction-DESC/page-1

上記のテスト URL は問題ありません。

ただし、同じファイルをここに持っていきます..

http://suzannec.brixwork.com/listings/city-Vancouver+West/area-Arbutus;Cambie;Coal+Harbour/order_by-create_date/order_direction-DESC/page-1

そして、あなたはそれに気づくでしょう; サブエリア名 (Arbutus、Cambie、および Coal Harbour) の間が不思議なことに %3b に変わり、生成されたページ タイトルも間違っています。これは、処理のために適切な配列が渡されていないためです。

これが .htaccess の問題ではない可能性があることは十分承知していますが、それが私が思いつく最善の方法です。

4

1 に答える 1

1

最初のルールはこれを行っています。2 番目のリンクをクリックすると、スラッシュやピリオドで終わっていないため、スラッシュ以外は同じ URI にリダイレクトされます。フラグを使用しNEて、セミコロンがエンコードされないようにしてください。

RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L,NE] 

devリダイレクト ルールがない限り、サイトが同じことをしていない理由がわかりません。

于 2013-08-19T22:10:31.900 に答える