htaccess重写如果url扩展名为.php将其删除

Ada*_*eld 4 php regex apache .htaccess mod-rewrite

我还想301重定向任何结尾的网址.php.然后我在内部将任何以a结尾的内容重定向//加号之前的名称.php.这些都是独一无二的.但把它们放在同一个.htaccess我得到一个The page isn't redirecting properly.

我在这做错了什么?

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

RewriteRule ^(.*)/$ $1.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 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]
Run Code Online (Sandbox Code Playgroud)