0

これは、インターネット全体とここでスタックオーバーフローに割り当てられています。しかし、私はそれを機能させることができません。(初めて.htaccesを使用)私がやろうとしているのは、いくつかの簡単なことです:

  1. wwwURL から 削除します。
  2. .phpURL から 削除します。
  3. /indexホームページにリンクされている場合は、ホームページから削除します。

私のウェブホスティング会社によると、これは彼らが使用しているものです:
Apache 2.2+およびPHP 5.3+ - MySQL 5.1+

.htacces ファイルは、index.php のルート フォルダーにあります。私は多くのものを試しましたが、これは私が今得たものです。

RewriteEngine On
#www to non www
RewriteCond %{HTTP_HOST} !^mysite.se$ [NC]
RewriteRule ^(.*)$ http://mysite.se/$1 [L,R=301]

#remove .php
RewriteCond %{HTTP_HOST} ^mysite\.se$ [NC]
RewriteCond %{QUERY_STRING} !internal=1 [NC]
RewriteRule ^(.*)\.php$ $1 [L,R=301]

#remove /index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

あなたが提供できる助けを前もって感謝します。

4

1 に答える 1

1

あなたは.htaccess間違った方法で使用しています。

フレンドリーな URL を生成するために htaccess を使用してはいけません。それを使用して、フレンドリーな URL を実際の URL に変換する必要があります

RewriteEngine On
RewriteBase /

#redirect www.mysite.se to mysite.se
RewriteCond %{HTTP_HOST} !^mysite.se$ [NC]
RewriteRule ^(.*)$ http://mysite.se/$1 [L,R=301]

#redirect mysite.se/page to mysite.se/page.php (transparent)
#as this rule is extremely permissive, we desactivate it when we're calling
#a real file, to avoid this kind of situation : mysite.se/img/mylogo.jpg.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]

#redirect mysite.se/index to mysite.se/ (visible)
RewriteRule ^index$ / [L,R=301]

コードでは、わかりやすい urlsを使用し、htaccess にリダイレクトさせます。

この方法を使用していない場合は、自己破壊的なパターンに陥り、(適切な URL を取得するために) にリダイレクトしよpage.phpうとしたり、 (アプリケーションは しか知らないため) にリダイレクトしたりします。pagepagepage.phppage.php

于 2013-03-07T13:45:24.140 に答える