2

私は自分の Web サイトのクリーンな URL に取り組んでいますが、インターネット上で見つけたものは、クリーンな URL をサーバーが使用できる URL に書き換えることがほとんどであることに気付きました。だから、このようなもの:

www.domain.com/profile/username --> www.domain.com/profile.php?u=username

RewriteEngine On
RewriteRule ^profile/(.*)$ /profile.php?u=$1 [L]

これで、私のウェブサイト内で cleanurl にリンクする必要があります。しかし、直観的には、「ダーティ」URL にリンクする方が堅実であると感じます。したがって、その場合は、上記の rewriterules とリダイレクト ルールを使用して、「ダーティ URL」をクリーン URL にリダイレクトする必要があります。これにより、ユーザーは常にブラウザでクリーン URL のみを見ることができます。

www.domain.com/profile.php?u=username --> www.domain.com/profile/username

これは良いことですか?それはウェブサイトによって行われますか?それに反対/賛成する議論は何ですか?

そして、このようなリダイレクトをどのように行いますか。次のようなものは機能しないようです。

RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]

私は.htaccessにかなり慣れていないので、明らかなことを尋ねるかもしれません...

4

1 に答える 1

0
RewriteRule ^profile\.php?u=(.*)$ /profile/$1 [R=301, L]

からのクエリ文字列と照合できないため、機能しませんRewriteRule(フラグにも空白があります)。また、他のルールからリダイレクト ループを引き起こすだけなので、URI ではなく実際のリクエストと照合する必要があります。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profile\.php\?u=([^&\ ]+)
RewriteRule ^/?profile\.php$ /profile/%1 [R=301,L]
于 2012-09-30T19:44:29.480 に答える