0

私は今、このようなもの(もちろん機能します)を何年も探していました。誰かが最終的にこのコードを作成できれば素晴らしいと思います。

現時点では、私はこれに取り組んできました:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteRule ^(.*)\/$ $1.php [NC]

そして、それはうまく機能しますが、末尾にスラッシュがないと機能しません。そして、これが厄介なのは、含まれているすべてのファイルをフォルダー前方に処理するため../、すべてのcssファイルとjsファイルに永久に追加することです。

上記とは別に、(意図したとおりに)次のように機能します。

  1. wwwが存在しない場合、これは追加されます
  2. http://www.example.com/page.phpはpage.phpに移動します
  3. http://www.example.com/page/はpage.phpに移動します
  4. http://www.example.com/pageは、フォルダを探しているときに404エラーが発生します

グーグルで色んなことを試しましたが、うまくいきませんでした。私がする必要があるのは、それがそのように末尾のスラッシュに転送されるかどうか、またはそれが両方を好きかどうかにかかわらず、末尾のスラッシュなしでURLを好きにすることです。全体的なアイデアは、.phpファイルを読み取り、それを優れたSEOタイプのリンクとしてウィンドウに表示することです:www.example.com/page

4

1 に答える 1

1
Options +FollowSymlinks
RewriteEngine On
DirectorySlash Off
RewriteBase /
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
RewriteRule ^(.*)\/(\?.*)?$ $1$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.php [NC]

<IfModule mod_rewrite.c>
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

これは機能します。この質問に答えます。誰かがこれを改善できますか?

于 2012-08-12T04:45:16.203 に答える