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