从包含破折号的文件名中删除 .php 扩展名

remove .php extension from filename containing dashes

用于删除 .php 扩展名 URL 文件名包含破折号

http://www.sitename.com/here-the-filename-with-dashes.php
http://www.sitename.com/filename.php
to
http://www.sitename.com/here-the-filename-with-dashes
http://www.sitename.com/filename

我已经尝试了几个代码,但没有通过 htaccess 文件使用。 这里是 HTACCESS 文件:

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f   
#RewriteRule ^([a-zA-Z0-9_-\s]+)/$ /.php
#RewriteRule ^(.*?)/?$ .php 
RewriteRule ^(.*)$ .php
#RewriteRule ^(.*)$http://www.sitename.ca/?.php [L,R=302]
#RewriteRule ^([^\.]+)$ .php [NC,L]
#RewriteRule ^([a-z]+)\/?$ .php [NC]
#RewriteRule ^([^/]+)/$ .php 

RewriteCond %{HTTP_HOST} ^sitename.com [NC] 
RewriteRule ^(.*)$ http://www.sitename.com/ [L,R=301] 
RewriteRule ^index.php$ http://www.sitename.com/ [R=301,L]

你走在正确的道路上。

Options +FollowSymLinks -MultiViews

RewriteEngine On

RewriteCond %{HTTP_HOST} ^sitename.com$ [NC] 
RewriteRule ^ http://www.sitename.com%{REQUEST_URI} [L,R=301] 

RewriteRule ^index.php$ http://www.sitename.com/ [R=301,L]

RewriteCond %{THE_REQUEST} ^GET\ /(.+)\.php [NC]
RewriteRule ^ /%1 [QSA,R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f   
RewriteRule ^(.*)$ /.php [L]