首页 > 解决方案 > 用斜杠重写规则问题

问题描述

我有一个带有网址的网站

http://mywebsite.com/abc.php

我添加了用于从 url 中删除 .php 扩展名的代码,如下所示

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

如果有人用 url 搜索

http://mywebsite.com/abc 它工作正常。

如果有人使用http://mywebsite.com/abc/进行搜索,我需要 使用 htaccess将其强制重定向到http://mywebsite.com/abc

标签: php.htaccess

解决方案


你可以使用这个:

RewriteEngine on

#redirect and remove trailing slash
#from all URIs except directories "!-d"
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/?$ /$1 [L,R=301]
#remove .php extension
#this allows you to access php files without extension
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+)/?$ /$1.php [QSA,L]

推荐阅读