2

すべての ASP ページを、PHP で開発された新しい Web サイトにリダイレクトする必要があります。

私は自分のASPページを次のように持っていました。
abc.asp?id=82

リダイレクトする必要があるもの
siteurl/index.php/abc

HTAccessでこれを手伝ってくれる人はいますか?

私は試してみました、
Redirect 301 /abc.asp?id=82 siteurl/index.php/abc

rewriterule ^/abc.asp?id=82$ siteurl/index.php/abc[R=301,L]

しかし、これは機能せず、404 エラーが発生します。

4

3 に答える 3

2

Redirectまたはのクエリ文字列と照合することはできませんRewriteRule。ここで達成しようとしている範囲が明確ではありません。はid=82重要ですか?abc「ただの文字」という意味ですか?ディレクトリですかsiteurl、それともドメイン名ですか? それが厳密にあなたが試みたものである場合、これは厳密にどのように機能するかです:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=82($|&)
RewriteRule ^/?abc.asp$ siteurl/index.php/abc? [L,R=301]
于 2013-04-24T09:52:23.473 に答える
1

あなたは2つの主な間違いを犯しています:

  1. 書き換えルールは URI 部分のみに一致し、クエリ文字列には一致しません
  2. .htaccess の書き換えルールが先頭のスラッシュと一致しません。

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

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

RewriteCond %{QUERY_STRING} ^id=82(&|$) [NC]
RewriteRule ^(abc)\.asp$ http://domain.com/index.php/$1 [R=302,L,NC]

動作していることを確認したら、302 (一時的なリダイレクト) を 301 (永続的なリダイレクト) に置き換えます。

于 2013-04-24T09:52:18.723 に答える
0

使うだけ

RewriteRule ^abc.asp$ siteurl/index.php/abc [R=301,QSA,L]

それは仕事をするはずです..QSAフラグを使用すると、タイトルで意図したものであれば、GETパラメーターも転送されます。

于 2013-04-24T09:52:49.863 に答える