我在尝试使用包含句号的用户名重写用户个人资料页面时遇到问题。
首先,我将此重写规则应用于我的 htaccess 文件;
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_]+)$ profile.php?tg_u=$1 [NC,L]
RewriteRule ^([^.]+)$ $1.php [NC,L]
实际上,重写规则在访问用户名仅包含字母和用户名包含数字和下划线(_)的用户时起作用,但是当尝试访问用户名如user.name 时,我确实收到 404 页错误,我尝试更改以前的 preg_match到这个 preg_match(a-zA-Z0-9_.) 和后来到这个 preg_match(a-zA-Z0-9_.) 在我的 htaccess(重写规则)但我注意到当我想在本地访问我的网站时, profile.php 页面被显示为索引页面,我后来在我的 htaccess 文件上使用这个 preg_match(a-zA-Z0-9.) 但仍然遇到同样的问题。
知道我为什么会遇到这个问题以及如何解决它,我将不胜感激。
您可以使用:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9_.]+)$ profile.php?tg_u=$1 [NC,L]
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^.]+)$ $1.php [NC,L]
-d
如果请求不是目录,并且-f
不是有效的文件名。
我添加了一个测试,不要将不存在的页面重写为 php。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句