2017-08-05 16 views
-1

RewriteCondとRewriteRuleを使用して、012hのアクセスをhttp://example.com/for-sale/?property=1234からhttp://example.com/for-sale/property-name/にリダイレクトしようとしています。これはこれまで私が持っているものです:htaccessクエリ文字列リダイレクトが動作しません

RewriteCond %{QUERY_STRING} ^(property=1234) 
RewriteRule ^$ /for-sale/property-name/? [R=301,L] 

これは機能しません。私は?property = 1234をfor sale/property-name /にリダイレクトすることができますが、リダイレクトされていないURLで/ for sale/for sale /私はRewriteRuleで売り込みのさまざまな組み合わせを試みましたが、成功しませんでした。おかげさまで 私のすべてのリンクが壊れていますので、いくつかのアドバイスをいただければ幸いです。ありがとう。

+0

いいえ、WordPressによって生成され、 'register_post_type'の 'rewrite'パラメータに由来します。問題を見つけて修正しました。下記の答えをご覧ください。 – ardmark

答えて

1

これはWordPressサイトです。最初の間違いは、wordpressが書き換えを行った後に書き換えを行うことでした。 2番目の間違いはRewriteRuleにありました。ここに作業コードがあります:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} property=1234$ 
RewriteRule ^for-sale/?$ /for-sale/property-name/? [R=301,L] 

... my other rewrites 

</IfModule> 

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

# END WordPress 

これは動作します。誰かを助けてくれることを願っています。

関連する問題