htaccessはindex.phpを強制的に書き換えます

I have links that are in this format: http://www.EXAMPLE.com/index.php?page=pageid They are also available at: http://www.EXAMPLE.com/?page=pageid

URLのindex.php部分を使用するには、index.phpファイル名のないファイルをリダイレクトするにはどうすればよいですか?

htaccessファイルに他のリダイレクトルールがあり、正常に動作していますが、index.phpを強制的に実行する方法とクエリ文字列を含める方法はわかりません。

1

1 答え

サイトのルートにある.htaccessファイルに次のルールを追加します。

RewriteEngine On
RewriteBase /

#only for the root directory
RewriteCond %{REQUEST_URI} ^/$
#if the uri is not already index.php
RewriteCond %{REQUEST_URI} !^/index.php [NC]
RewriteRule ^$ /index.php    [R=301,L]

それでも他のルールとの競合がある場合は、上のリライトルールの前にfollowind条件を追加して、このルールを page = クエリースクリプトのパラメータでリクエストだけに制限することができます

# to limit further to only the requests with a page= param
RewriteCond %{QUERY_STRING} ^([^&]+&)*page=.*$ [NC]
4
追加された
私は別の条件を加えることによってこのルールの範囲を制限しました。これが動作するかどうか私に教えてください。
追加された 著者 Ulrich Palha,
これは機能しません。私が最初に投稿したリンクをリダイレクトしないで、リンクしてはいけないリンクが壊れてしまいます。
追加された 著者 Sherwin Flight,
さて、今、完璧に動作します。助けてくれてありがとう。
追加された 著者 Sherwin Flight,