1

私のウェブサイトで、長いURLをSEOに適したものに書き直そうとしています。

私は次のコードを持っていますが、それは何にも影響を与えていないようです!ただしdgadgdfsg、htaccessと入力すると、内部サーバーエラーがスローされます。ですから、書き換えルールのあるものだと思います。

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L]

mod_rewriteがオンになっていることを確認しました。


これは現在のURLです

http://mysite.com/missing-people/user-profile.php?userID=1&firstName=Liam&lastName=Gallagher

これも私が欲しいものです

http://mysite.com/1/Liam/Gallagher

4

2 に答える 2

1

RewriteRuleをこれに変更します(バージョンから少し変更します)

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [QSA,L]

それでも問題が解決しない場合はR、テスト目的でフラグを設定してみてください(これにより、ブラウザは元のURIを次のように変更します。/missing-people/user-profile.php?userID=1&firstName=Liam&lastName=Gallagher

于 2012-07-12T15:49:57.680 に答える
0

userIDが数字のみで構成されておりfirstNamelastName英数字のみであると想定します。

RewriteEngine On
RewriteRule /(\d+)/(\w+)/(\w+)/ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L]

評価された正規表現の最初と最後の境界を設定することを除いて、同じことを行うより厳密なバージョン。

RewriteEngine On
RewriteRule /^(\d+)\/(\w+)\/(\w+)$/ /missing-people/user-profile.php?userID=$1&firstName=$2&lastName=$3 [L]
于 2012-07-12T12:53:39.943 に答える