特定文件的Htaccess内部重定向不起作用


Htaccess internal redirect for specific file not working

我目前使用以下htaccess代码来删除所有.php扩展:

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} '.php$
RewriteRule .* - [F]
RewriteCond %{REQUEST_FILENAME} !-f    
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+[^/])/?$ $1.php [L]

我一直试图使用以下htaccess代码在内部重定向或向文件添加隐藏的查询参数

RewriteRule ^myfile/?([^/])?/?$ myfile.php?m=$1 [L]

但它不起作用。

.htaccess中规则的顺序很重要,因此您的新规则应该高于所有其他规则。这应该是你的.htaccess:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^myfile/?([^/])?/?$ myfile.php?m=$1 [L,QSA,NC]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} '.php$
RewriteRule .* - [F]
RewriteCond %{REQUEST_FILENAME} !-f    
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+[^/])/?$ $1.php [L]