RewriteRule ^([a-zA-Z0-9]+)?$ index.php?page=$1 [L]
我之前的代码将 ex:domain.com/about 重写为domain.com/index.php?page=about
所以现在,我想添加一种安全措施,以防万一有人在末尾添加 .html 或 .php 认为它应该在那里,我希望它删除扩展名,但仍然遵循我之前的规则。我希望此更改忽略该文件是否确实存在。如果文件存在,还需要处理结尾。
ex:
如果有人输入 about.php 或 about.html,我希望它删除扩展名,然后处理上面重写规则剩下的内容。
所以about.php会重写为about,然后重写为index.php?page=about
如果可能的话,我希望它能够将 URL 实际更改为domain.com/about。现在,上面的重写留下了domain.com/about,但只是通过index.php对其进行处理。如果他们输入 about.php 或 about.html 我会喜欢它,它会将浏览器重定向到 domain.com/about 。
有什么办法可以实现这一目标吗?我已经考虑过使用 htaccess 删除文件扩展名,但它们都没有做我想要的重定向到 index.php?page= 的事情。他们都想以不同的方式重定向。
EDIT
我需要这个是通用的。它不能只处理“关于”,我需要它来处理该特定位置的任何内容。
如果这不是目录或文件,并且有扩展名,则重定向而不带扩展名:
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9]+)?$ index.php?page=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)\..*$ $1 [R=301,L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)