0

私はちょうど新しいサイトを立ち上げ、カテゴリの 1 つをautimobiles代わりにと綴りautomobilesました。リダイレクト先の部分文字列を.htaccess含む URL に対して 301 リダイレクトを設定しました。したがって、URIは にリダイレクトする必要があります。しかし、これは何が起こっているのか...autimobilesautomobiles/autimobiles/BMW-pictures/automobiles/BMW-pictures

これ

http://imageocd.com/autimobiles/hupmobile-touring-pictures-and-wallpapers

これにリダイレクトしています

http://imageocd.com/automobiles/hupmobile-touring-pictures-and-wallpapers?one=autimobiles&two=hupmobile-touring-pictures-and-wallpapers

これが私が.htaccessセットアップした方法です。

mod の書き換え用に&&という名前の2 つの$_GET['']変数があります。これら 2 つの変数は、リダイレクト時に URI の変数として表示されます。URI からを削除したい。$_GET['one']$_GET['two']$_GET['']?one=autimobiles&two=hupmobile-touring-pictures-and-wallpapers

ここに私の.htaccess.

# Important line HERE
RedirectMatch permanent autimobiles(.*) http://imageocd/automobiles$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+) index.php?one=$1&two=$2 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+) index.php?one=$1 [NC,L]

で更新.htaccess

RewriteCond %{QUERY_STRING} ^autimobiles(.*)$
RewriteRule ^autimobiles(.*)$ http://imageocd.com/automobiles$1 [R=301,L]

#load-data (2) -- index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+) index.php?one=$1&two=$2 [NC,L]

#load-data (1) -- index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+) index.php?one=$1 [NC,L]
4

1 に答える 1

1

あなたの質問を正しく理解していれば...このコード:

RewriteEngine On
RewriteRule ^autimobiles/(.*)$ http://temp/automobiles/$1 [R=301,L]

/autimobiles/BMW-picturesからにリダイレクトし/automobiles/BMW-picturesます。


編集:
あなたが書きました: How to remove "?one=autimobiles&two=hupmobile-touring-pictures-and-wallpapers" From the end of the URL. The redirection works, but it appends bot get variables on the URL.

自動車のあるこのパスでのみこのタグを削除したい場合は、次の 1 つのステートメントを行に追加します。

RewriteRule ^autimobiles(.*)$ http://imageocd.com/automobiles$1 [R=301,L]

#load-data (2) -- index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} !^automobiles(.*)$
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+) index.php?one=$1&two=$2 [NC,L]

#load-data (1) -- index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} !^automobiles(.*)$
RewriteRule ^([a-zA-Z0-9-]+) index.php?one=$1 [NC,L]
于 2012-09-09T17:11:28.917 に答える