2012-02-02 14 views
1

サイトでURL変更を実装しようとしています。まず、私はサブディレクトリレベルでこのURLの変更を実装したいと思っています。私はWordPressをルートにインストールしていますが、私はカスタムクラシファイドセクションを作成中です。これはディレクトリ/ classifieds /にあります。結果として、私はこのサブディレクトリ内のURLを書き換えたいだけです。は、書き換えられたURLのクエリ文字列値を渡すことができません。

私は、SEOのために301の実行と後続のスラッシュを追加して、必要に応じて、クラシファイドサブディレクトリだけで正しく書き直すことができました。唯一の問題は、私のページのどれもがクエリ文字列値を渡していないことです。下の.htaccessコードを変更して、クエリーストリングをページ間で渡すことができますか?

IndexIgnore * 

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.]+\.php(\?[^\ ]*)?\ HTTP/ 
RewriteRule ^(([^/]+/)*[^.]+)\.php$ http://www.mysite.com/classifieds/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ http://www.mysite.com/classifieds/$1/ [R=301,L] 

redirect 301 /classifieds/index/ http://www.mysite.com/classifieds/ 

ご協力いただきありがとうございます!あなたは[QSA]クエリ文字列に取り付け

EDIT

のRewriteRule ^(([^ /] + /)* [^。] +)。$ http://www.mysite.com/classifieds/ $ 1 PHP [R = 301を追加する必要が

+0

あなたは、クエリ文字列 –

答えて

0

、L、QSA]

するRewriteRule(。*)$ http://www.mysite.com/classifieds/ $ 1/R = 301、L、QSA]

+0

に合格しないURLの例を提供することができます私は非常に多くの初心者は、あなたは[QSQ]私は... – Chris

+0

@クリスが更新答え – ianbarker

+0

を参照してください追加する必要がコードのどの行助言することができていますあなたの提案を試しましたが、まだ難しかったです。 [QSA]を追加すると、次のURL出力が得られます。http://www.mysite.com/classifieds/view-ad/?user = 0001 – Chris

0

これを正しく理解していれば、クエリ文字列を複数のページにわたって永続させることができます。もしそうなら、私がこれを行うために知っている唯一の方法は、クエリ文字列を付加したページ上のすべてのリンクを出力することです。つまり、これはPHPファイルで行われます。

これを行うには、URLの末尾にurlencode($_GET)を追加してリンクを出力する必要があります。

関連する問題