我想知道是否有办法使用 mod_rewrite 从我的网站中删除 .html 和 .php 代码?
我的大部分页面都是用 HTML 制作的,但联系页面的扩展名为 .php。使用 .htaccess 中的代码
Options +FollowSymLinks
Options +Indexes
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.html [NC,L]
显然会处理其中的 .html 部分。是否需要更改它以包括我的一个 php 页面?
或者如果没有别的,有没有办法为每个页面单独编写 mod_rewrite 代码,以摆脱它们的扩展?
提前致谢。
最佳答案
您可以将 RewriteRules 加倍并检查每个可能的扩展名(如果存在具有该名称的文件,则该规则将起作用)。
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME}.html -f
RewriteRule $ .html [NC,L]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME}.php -f
RewriteRule $ .php [NC,L]
$
正则表达式只是“零宽度”匹配当前路径的末尾,因此扩展名只是被附加。
最省力的解决方案就是使用:
Options +MultiViews
(实际上启用了更多的服务器智能,但带来了轻微的性能成本。)
关于php - 有没有办法使用 mod_rewrite 从我的网站中删除 .html 和 .php 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8515199/