例えば:
www.site.com/your/blue
リダイレクトされます...www.site.com/your/index.php?= blue
現在、誰かがwww.site.com/your/blueと入力すると、ページが存在しないというエラーがスローされます。誰かがこれで私を助けることができますか?前もって感謝します。
mod rewriteを使用します:
RewriteEngine On
RewriteRule ^(.*)/(.*)/$ $1/index.php?p=$2 [L]
p
(空にすることはできないため、クエリ文字列の名前として追加しました)
さらに、と書き換えルールの間に次のコード行を追加してRewriteEngine On
、末尾にスラッシュがあることを確認できます(これをお勧めします)。
# Add trailing slash
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ http://www.site.com/$1/ [R=301,L]
この種のリダイレクトには、Modrewriteを使用する必要があります。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ $1/index.php?page=$2 [L]
</IfModule>
この正規表現は、クリーンURLがサイトに渡され、終了スラッシュの有無にかかわらず機能することを保証します。
注意:PHPに渡されるパラメーターには名前が必要なので、page=を追加しました。
制限なしで動作させたい場合(スペースは動作します)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([^/]+)/([^/]+)/?$ $1/index.php?page=$2 [L]
</IfModule>