2

最近、Joomla でプロジェクトを開始しました。そこからindex.phpを削除する必要がありました(構成設定のチェックボックスでした)。私はそれを行う方法を見つけました。そして現在、実際にはすべての URL が index.php なしで作成されています。

ただし、URL http://mywebsite.com/index.php/article-nameに直接入力できますが、http://mywebsite.com/article-nameに書き換えていません。メニューがある場合、URL は正しく作成されています (http://mywebsite.com/article-name - index.php なし)。

問題は、index.php を使用する Web サイトから index.php を使用しない Web サイトへの htaccess リダイレクトを作成する方法です。

4

2 に答える 2

2

内部で index.php にルーティングしているため、実際のリクエストと照合する必要があります。

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /index\.php/[^\ ]+
RewriteRule ^index\.php/(.*)$ /$1 [L,R=301]
于 2012-12-18T10:59:24.303 に答える
1

グローバル構成ページに移動し、次の変更を行います。

  1. SEF (検索エンジンに適した) URL オプションをオンにします。
  2. Apache mod_rewrite に「はい」と言う
  3. URL にサフィックスを追加しないと言う
  4. Unicode エイリアスにノーと言う
  5. ページ タイトルにサイト名を含める場合は、いいえと答えてください。

また、htaccess.txt を .htaccess に変更します。ここで、「Redirect Goes Here」というポイントに新しいリダイレクト コードを追加します。

コード:

#### 開始 - 301 リダイレクト

#

RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /([^/]+/)*(index|home).html?\ HTTP/

RewriteRule ^(([^/]+/)*)(index|home).html?$ http://www.example.com/ $1 [R=301,L]

#

RewriteCond %{THE_REQUEST} !^POST

RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /([^/]+/)*index.php\ HTTP/

RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$

RewriteRule ^(([^/]+/)*)index.php$ http%2://www.example.com/$1 [R=301,L]

#

RewriteCond %{HTTP_HOST} !^(www.example.com)?$

RewriteRule (.*) http://www.example.com/ $1 [R=301,L]

#

#### 終了 - 301 リダイレクト

注: サイト名から www.example.com を削除してください。

于 2013-01-09T05:04:08.857 に答える