0

.htaccessの経験はありませんが、とても便利だというヒントがあったので、試してみたかったのです。

ルートフォルダに.htaccessというファイルがあります。ファイルにはこれが含まれています。

RewriteBase /

RewriteEngine on
RewriteCond %{HTTP_HOST} ^kellyvuijst\.nl [nc]
RewriteRule (.*) http://www.kellyvuijst.nl/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^/]+)/$ $1.html 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

ここで私がやろうとしているのは、「mysite.com/portfolio.html」の代わりに「www.mysite.com/portfolio/」を作成することです。これについていくつかのチュートリアルを使用しましたが、正しいと思いますが、よくわかりません。 。

だから今私はこのファイルを持っています、そして今何ですか?チュートリアルはすべて、ファイルに何を入れるかを示していますが、それをどうするかは示していません。私が持っているすべての.htmlページでそれを呼び出す必要がありますか?そして、どうすればそれを求めることができますか?

4

3 に答える 3

2

A .htaccess file is automatically invoked by the server.

You have just to put this into your file :

RewriteBase /
RewriteEngine on
RewriteRule www.mysite.com/portfolio/ /mysite.com/portfolio.html [L] 
于 2012-10-11T12:32:39.463 に答える
1

うーん、それを実現するためにここで多くのルールを使用しています。

とにかく、そのファイルを含める必要はありません。Apache を使用するサーバーでサイトをホストしている場合は、自動的に含まれます。PHP ファイルも実行できますか、それともサイトは HTML のみですか? Apacheも使用している場合、これは常に簡単な兆候です(100%ではありませんが、多くの場合一緒に使用されます)。

その場合は、最初に次のルールを使用してみてください。

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.(.+)\.(.+)$ [nc]
RewriteRule ^(.*)$ http://www.%1.%2/$1 [R=301,L]

常にアドレスに www が追加される場合は、少なくとも www なしで URL を入力しても、確実に機能します。

次に、.html を非表示にするために、次のルールを追加できます。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule $(.*)/$ /$1.html [L]

これにより、/portfolio/ が Web サイトの実際のディレクトリでない場合に限り、スラッシュ (portfolio/ など) で終わるすべての URL が代わりに .html ファイル (portfolio.html) を使用するようになります。

(別の Web サイトで使用する場合、または URL を変更した場合にも機能するはずなので、ルールから URL を削除しました。それでも、必要なことが行われるはずです)

于 2012-10-11T12:35:31.040 に答える
0

htaccessファイルがホストオプションを上書きできるようにサーバーが構成されていることを確認してください。したがって、仮想ホスト/サーバー構成では、次のものが必要です。

AllowOverride All
于 2012-10-11T19:01:07.003 に答える