2017-01-13 6 views
0

を単語を除外:I、htaccessを - 私は私のhtaccessファイルに次のように持っている既存の書き換えから

# drop tags 
#RewriteCond %{THE_REQUEST} (.*)designs/(.*)/?tag=shirts [NC] 
#RewriteRule .* /designs/%2/ [R=301,L] 
RewriteCond %{THE_REQUEST} (.*)designs/([^?]+)\?tag=[^&]* [NC] 
RewriteRule .* /designs/%2? [R=301,L] 

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+product/search/\?tag=([^\s&]+) [NC] 
RewriteRule^/%1/? [R=301,L,NE] 

# internal forward from pretty URL to actual one 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/designs/ [NC] 
RewriteRule ^([^/]+)/?$ product/search/?tag=$1 [L,QSA] 

RewriteCond %{QUERY_STRING} ^search= [NC] 
RewriteRule ^designs/.*$ /$0? [L,R=301,NC] 

RewriteCond %{QUERY_STRING} ^mfp= [NC] 
RewriteRule ^designs/ %{REQUEST_URI}? [L,NC,R=301,NE] 

私のテーマはブログをサポートしていますが、それを有効にした後(これはデフォルトではexample.com/blog/します)私のメニューのブログリンクをクリックすると、「検索条件に一致する商品がありません」というページが表示されます。上記のhtaccessルールを削除すると、ブログページ(記事リストを含む)が正常に動作するため、間違いなくそのページが表示されます。

htaccessのルールから「ブログ」という単語を除外すると、この問題は解決します。

答えて

0

数時間後に修正することができました。解決策は次のとおりでした:

# external redirect from actual URL to pretty one 
RewriteCond %{REQUEST_URI} !^/blog($|/)$ 
RewriteCond %{THE_REQUEST} \s/+product/search/\?tag=([^\s&]+) [NC] 
RewriteRule^/%1/? [R=301,L,NE] 

# internal forward from pretty URL to actual one 
RewriteCond %{REQUEST_URI} !^/blog($|/)$ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !^/designs/ [NC] 
RewriteRule ^([^/]+)/?$ product/search/?tag=$1 [L,QSA] 

この解決策は、/後に/をつけてブログを処理します。

今後誰かを助ける希望。

関連する問題