我有一个.htaccess文件,它将任何扩展名重定向到非扩展名 url 并显示请求的文件名 + .php。它适用于条件的(.*)部分。
当我输入domain.com/file.html或domain.com/file.xml时,它会显示file.php并且 url 看起来像domain.com/file。
我只是想知道如何从表达式中排除 .js 和 .css 之类的扩展名。我不想将它们重定向到任何其他 php 文件。
我尝试了类似:(.*!.(js|css))而不是(.*)但我找不到有效的解决方案...
当前代码是这样的:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
#
# to display the name.php file for any requested extension (.*)
#
RewriteRule ^(.*)\.(.*) $1\.php
#
# to hide all type of extensions (.*) of urls
#
RewriteCond %{THE_REQUEST} ^[A-Z]+\s.+\.(.*)\sHTTP/.+
RewriteRule ^(.+)\.php $1 [R=301,L]
#
# no extension url to php
#
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]
</IfModule>