繁体   English   中英

如何在htaccess中允许点(。)?

[英]How to allow a dot (.) in htaccess?

这是我的htaccess文件,由于某种原因,这个规则:RewriteRule ^ profile /([^ /] +)$ ./profile.php?name = $ 1不允许链接中的点。 它允许任何其他符号,但不允许点(。)。 我怎样才能解决这个问题?

Options -MultiViews -Indexes
RewriteEngine On

RewriteCond %{HTTP:VIA}                 !^$ [OR]
RewriteCond %{HTTP:FORWARDED}           !^$ [OR]
RewriteCond %{HTTP:USERAGENT_VIA}       !^$ [OR]
RewriteCond %{HTTP:X_FORWARDED_FOR}     !^$ [OR]
RewriteCond %{HTTP:PROXY_CONNECTION}    !^$ [OR]
RewriteCond %{HTTP:XPROXY_CONNECTION}   !^$ [OR]
RewriteCond %{HTTP:HTTP_PC_REMOTE_ADDR} !^$ [OR]
RewriteCond %{HTTP:HTTP_CLIENT_IP}      !^$
RewriteRule ^(.*)$ - [F]

DirectorySlash On

ErrorDocument 404 /404.php
ErrorDocument 403 /404.php
ErrorDocument 502 /brb.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} (.+)/$

RewriteCond %{THE_REQUEST} /profile\?name= [NC]
RewriteRule ^ - [L]


RewriteRule ^profile/([^/]+)$ ./profile.php?name=$1 


RewriteCond %{ENV:REDIRECT_STATUS} ^$

RewriteRule ^([^/.]+)\.php - [F,L,R=404]
RewriteRule ^([^/.]+)$ $1.php [L]

在我的网站上,用户可以注册任何名称(因此任何字符)。 但是,假设我将我虚构的名字命名为“Mr.BoogieMan。”,我的个人资料的链接应该是www.website.com/profile/Mr.BoogieMan。 但由于圆点在我的名下,htaccess不会让它通过。

点(。)是正则表达式中的特殊字符,表示“任何字符”。 要使用点(。),您必须像这样逃避它:

\.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM