1

.htaccess ファイルをセットアップして URL を書き換えようとしているので、.php や .html などのファイル拡張子が削除されます。現時点では、404 エラー ページのみが .htaccess で機能します。

変更しようとしている URL の例: http://www.thinkbrainstormers.co.uk/clients.php

http://www.thinkbrainstormers.co.uk/clientsに変更しようとしています

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"
</IfModule>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html
ErrorDocument 404 /404.html

.htaccess ファイルです

4

1 に答える 1

0

逆方向に進んでいます。書き換え条件で拡張子を削除せず、拡張子を持つファイルへのパスを定義します。これらの行:

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

...基本的には、「.php 拡張子が付いたファイル リクエストが届いた場合は、.php 拡張子を付けて呼び出してください」と言っています。パス構造を定義し、それらの構造を使用する php ファイルにマップする必要があります。何かのようなもの:

RewriteRule ^episode/([0-9]+)?$ episode.php?eid=$1 [L]

...それを取りurl.com/episode/5、にマップしますepisode.php?eid=5

于 2013-03-21T15:50:40.950 に答える