4

また、で終わる URL を 301 リダイレクトしたいと考えています.php。次に、 a で終わるものはすべて、 plus/の前の名前に内部的にリダイレクトします。これらは両方とも、単独の場合は正常に機能します。しかし、それらを同じにすると、./.php.htaccessThe page isn't redirecting properly

ここで何が間違っていますか?

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

RewriteRule ^(.*)/$ $1.php [QSA,L]
4

1 に答える 1

5

これらのルールはあなたのために働くはずです:

RewriteEngine On

## Adding a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule . %{REQUEST_URI}/ [L,R=301]

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

# To internally forward /dir/file/ to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]
于 2013-10-25T20:40:19.597 に答える