如何在不拖尾的情况下使所有url无扩展.并将.php和尾部斜杠重定向到无?

use*_*847 3 url .htaccess mod-rewrite clean-urls

我想让我的所有网址统一干净.这意味着我的所有网址都没有扩展名,也没有斜杠,如果某人确实输入了.php斜杠或尾随斜杠,它只会将此人重定向到干净的网址.

例:

example.com/blog/file.php
Run Code Online (Sandbox Code Playgroud)

example.com/blog/file/
Run Code Online (Sandbox Code Playgroud)

会重定向到

example.com/blog/file
Run Code Online (Sandbox Code Playgroud)

rya*_*nve 5

.htaccess尝试这个办法:

RewriteEngine on

#unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]

#resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

#redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php /$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)