0

httaccess を記述して、URL を「www」フリーにし、「フレンドリーな」URL のスラッグ スタイルを設定できるようにする方法を見つけようとしています。ただし、内部 500 エラーに自分自身を書き込み続けているようです。それまたはそれは余分なものを持ち越していないようです。余分なものは.com/からのもの、つまりmydomain.com/hello/worldからのものです

RewriteEngine On
Options +FollowSymlinks -MultiViews
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.mydomain.com [NC]
RewriteRule ^(.*)/?$ http://mydomain.com/index.php?r=$1

全体的な目標は、これらの 2 つの方法のいずれかで URL を取得します

http://mydomain.com/hello/world

http://www.mydomain.com/hello/world

そしてそれを翻訳してもらいます

http://mydomain.com/hello/worldをフロントエンドに送信しますが、バックエンドではhttp://mydomain.com/index.php?r=hello/worldと同等になります

また、ファイルが存在する場合、またはフォルダーが存在する場合、または存在するものは何でもリライトコールドを停止する条件を適用したいと思います。www部分を削除しなくてもこれが可能であることはわかっていますが、以前はこれを行うことができるhtaccessファイルを持っていたので、その部分についてはわかりませんが、そのファイルを失ってからずっと経ちましたそもそも私がどのようにそれをしたかを思い出すためにhtaccessで遊んだ。

4

1 に答える 1

1

これにより、www が非 www サイトに転送されます。また、index.php にも注意してください。

RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
RewriteRule ^(.*)$ index.php?r=$1 [QSA,L]

次の 2 行を追加することもできます。次のように、css または画像がある場合、それらを index.php に書き換えません。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?r=$1 [QSA,L]

これはテストされていませんが、一般的なガイダンスです。

于 2012-06-08T22:56:51.833 に答える