1

私はそれを作成しようとしているので、リクエストhttp://www.domain.tld/folder/filename.php301リダイレクトされるようにしていますhttp://www.domain.tld/folder/filename(つまり、phpなし)が、そうするのに苦労しています。

これが私の.htaccessです:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\.php$
RewriteRule (.*) $1.php [L]

RewriteRule (.*)\.php $1 [L,R=301]

最初の RewriteRule は期待どおりに機能します。第二に...それほどではありません。

リダイレクト先のhttp://www.domain.tld/folder/filename.php書面によるリクエストとして301http://www.domain.tld/home/username/public_html/folder/filename

その最後の RewriteRule を変更すると、/$1代わりに$1doにリダイレクトされhttp://www.domain.tld/filenameますhttp://www.domain.tld/folder/filename

何か案は?

ありがとう!

4

1 に答える 1

2

.php拡張子を非表示にするために、.htaccess を次のように保持します。

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
于 2013-08-26T16:23:54.267 に答える