URLから「index.php」を削除するにはどうすればよいですか?


回答:


17

これを行うには、Joomlaグローバル構成でSEF URLを有効にし、特にパラメーター「Use URL rewriting」を有効にします。

.htaccessオプションを有効にする前にファイルを作成しなかった場合、これにより内部サーバーエラーが生成されることに注意してください。

これらの素晴らしいURLを取得するために必要な手順を説明するドキュメントページがあります。こちらをご覧ください:http : //docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

基本的htaccess.txtに、Joomlaのルートディレクトリにあるファイルの名前を変更する必要があります。ホスティング業者によっては、追加の手順が必要です。


はい、試してみます。今考えるとJoomlaがそのコード自体を生成しないのは少し奇妙です。私はそのオプションを試したと思いますが、実際にはクラッシュしました。
connersz

1
それこそが、Joomlaがコード自体を生成しない理由です。それはホストに大きく依存し、機能を有効にすることでサイトを完全に壊したくありません:)
Bakual

4

次のコードをJoomlaのindex.phpの先頭に追加できます。

if(strcmp($_SERVER['REQUEST_URI'], '/index.php') == 0 && $_SERVER['QUERY_STRING'] == ''){
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: /');
    exit;
}

ただし、このアプローチを採用する場合は、アップグレード時にこれをやり直す必要があります。


htaccessでリダイレクトとReWriteが機能しなかった場合は、オプションのハックとしてこれを行うことをお勧めします。有効なフォールバック
tristanbailey 2014年

同意した。これが実際にこのソリューションに到達した方法です。htaccess修正をサイト全体で適切に機能させることができませんでした
ContextSwitch '

4
  1. htaccess.txtを.htaccessに変更
  2. サイト>グローバル構成:URL書き換えを使用(はいを選択)
  3. SEO設定検索エンジンフレンドリーURL(はいを選択)

2

.htaccessを使用してサイトがクラッシュした場合の一般的な方法は次のとおりです。

  • これらの行の1つまたは両方をコメント化する必要があります。

オプション+ SymLinksをフォロー

および/または、

RewriteBase /

これはうまくいくはずです!注:「#」の行にハッシュタグを付けることでコメントします


1

あなたが使用している場合はnginxの Webサーバを、あなたがのために次のコードを使用することができnginx.conf、あなたのJoomlaの設定ファイル!サイトが提供されます(基本的に、index index.phpディレクティブが表示される既存の行の後にif条件を追加するだけです)。

#/programming//a/38165768/remove-index-php-from-joomla-urls-with-nginx
index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") {    return  301 /$1$2;  }

詳細については、https://stackoverflow.com/questions/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768を参照してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.