删除php扩展名不能与mod重写中的其他规则一起使用

时间:2015-10-05 04:15:35

标签: apache .htaccess mod-rewrite

更新report是一个保留字还是mod重写中的某种特殊字符串?我已将文件名更改为report1,规则正常。

原始问题

我无法获取特定文件/www/admin/report.php来处理重写规则。我希望删除php扩展并将类别值附加到/admin/路径,如下所示:

https://url.com/car/admin/report

但由于某些原因,网址仅适用于扩展名:

https://url.com/car/admin/report.php

我已取消注释要测试的其他规则。以下是应删除php扩展的规则:

RewriteCond %{REQUEST_FILENAME}.php -f

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

RewriteCond %{THE_REQUEST} /index\.php [NC]

RewriteRule ^([^\.]+)$ $1.php [NC,L]

RewriteCond %{REQUEST_URI} /(admin|search)/(.*) 

RewriteRule ^(.*)/(.*)/(.*)?$  $2/$3?category=$1 [NC,QSA] 
// I make it less specific so it works with any filenames other than report.php as well

我已尝试将.php添加到最后一条规则中,但不会发挥作用

RewriteRule ^(.*)/(.*)/(.*)?$  $2/$3.php?category=$1 [NC,QSA]

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你可以尝试使用mod_negotiation,并抛弃所有的php扩展规则。只需在htaccess文件中的某处添加选项:

Options +Multiviews