1

私はこの問題を3日間解決しようとしてきましたが、答えが見つからないので、誰かがこれに光を当てることができることを願っています.

.htaccess を使用して、SEO の目的で永続的な 301 リダイレクトとして URL を動的に書き換えることを検討しています。以下の変更を検討しています。

OLD URL EXAMPLE: http://example.co.uk/blog/?tag=facebook/page/5/
OLD URL EXAMPLE: http://example.co.uk/blog/?tag=twitter/page/2/
OLD URL EXAMPLE: http://example.co.uk/blog/?tag=google/page/12/

NEW URL: http://example.co.uk/blog/?tag=facebook&paged=5
NEW URL: http://example.co.uk/blog/?tag=twitter&paged=2
NEW URL: http://example.co.uk/blog/?tag=google&paged=12

タグ(「facebook」)とページネーション番号(「5」) の2 つの動的プロパティを、リクエストごとに異なる可能性があるため、受信する URL リクエストごとに再利用できるようにする必要があります。

この理由は、ページネーションを使用せず、'/page/5' として表示される 'next' と 'previous' のみの古い wordpress ブログからの 404 エラーを解決しようとしているためです。新しいブログでは、「&paged=5」と表示されるページネーションが使用されています。

これは私が試した例です。

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/blog/$
RewriteCond %{QUERY_STRING} ^tag=([a-z]+)/page/([0-9])$
RewriteRule ^(.*)$ http://example.co.uk/blog/?tag=%1&paged=%2 [R,L]

PHP は CGI として実行されており、Apache に変更することはできず、サイト全体で多くの権限の問題が発生します。

RewriteRules、RewriteConds、および %{QUERY_STRING} リクエストの組み合わせをいくつか試しましたが、まだ満足できません。これについて何か助けていただければ幸いです。

4

2 に答える 2

1

これはうまくいくはずです:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^tag=([^/]+)/page/([^/]+)/?$ [NC]
RewriteRule ^(blog)/?$ /$1/?tag=%1&paged=%2 [R=302,L,NC]

正常に動作していることを確認したら、 に置き換えR=302ますR=301R=301mod_rewrite ルールのテスト中は (Permanent Redirect) を使用しないでください。

于 2013-05-14T11:13:11.570 に答える
0

両方の方法を試しましたが、うまくいきませんでした。最終的に、試行錯誤の末、なんとかそれを正しく取得することができました。これが私たちのために働いた結果です。

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/blog/$
RewriteCond %{QUERY_STRING} ^tag=([a-z]+)/page/([0-9]+)/$
RewriteRule ^(.*)$ http://example.co.uk/blog/?tag=%1&paged=%2 [R,L]

注: これらは、Apache PHP セットアップでは機能するように見えるいくつかの構文エラーにすぎませんが、CGI PHP セットアップでは微調整が必​​要でした。

また、この htaccess コードを再利用して、「タグ」を「猫」に変更し、猫の正規表現を文字から数字に変更して、カテゴリも説明しました。

RewriteCond %{REQUEST_URI}  ^/blog/$
RewriteCond %{QUERY_STRING} ^cat=([0-9]+)/page/([0-9]+)/$
RewriteRule ^(.*)$ http://example.co.uk/blog/?cat=%1&paged=%2 [R,L]

再度、感謝します。

これが将来同じ問題を抱えている人に役立つことを願っています。

他の人に行きましょう!:)

于 2013-05-14T13:48:32.077 に答える