2

我目前使用以下 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]

但它不起作用。

4

1 回答 1

1

.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]
于 2013-06-28T14:35:40.113 回答