.htaccess 允许在URL中使用特殊字符
我想在URL中允许特殊字符.htaccess 允许在URL中使用特殊字符,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我想在URL中允许特殊字符 我的密码是 <IfModule mod_rewrite.c> RewriteEngine on RewriteBase / RewriteRule ^blog/?$ SocialNetwork/blog.php [L] RewriteRule ^blog/(\d+)/?$ SocialNetwork/blog.php?id=$1 [L] RewriteRule ^blog.php/(\d+)/?$ SocialNetwork/blog.php?id=$1
我的密码是
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^blog/?$ SocialNetwork/blog.php [L]
RewriteRule ^blog/(\d+)/?$ SocialNetwork/blog.php?id=$1 [L]
RewriteRule ^blog.php/(\d+)/?$ SocialNetwork/blog.php?id=$1 [L]
RewriteRule ^blog.php/(\d+)/([A-Za-z0-9-_[]]+)/?$ SocialNetwork/blog.php?id=$1&title=$2 [L]
</IfModule>
重新启动发动机
重写基/
重写规则^blog/?$SocialNetwork/blog.php[L]
重写规则^blog/(\d+)/?$SocialNetwork/blog.php?id=$1[L]
重写规则^blog.php/(\d+)/?$SocialNetwork/blog.php?id=$1[L]
重写规则^blog.php/(\d+)/([A-Za-z0-9-[]]+)/?$SocialNetwork/blog.php?id=$1,title=$2[L]
它适用于
blog/1
blog/1/hii
blog/1yooo\u标题
但这并不适用于任何人
blog/1/[hii这是[]title
我很确定你不能在URL中使用空格。永远。在你上次的重写规则中,尝试转义方括号。如果你需要匹配空格,你需要在其中包含\s:
^blog.php/(\d+)/([A-Za-z0-9-_\[\]\s]+)/?$
或者也许考虑在标题中接受任何东西的简单:
^blog.php/(\d+)/(.+)/?$
另一点是,URL中不应该有空格。它们应该转义为“+”或%20。因此,根据这一点,您的正则表达式将发生变化,但我建议的最后一个正则表达式除外。仅字母数字,即特殊字符“$-。+!*”()”,并且用于保留目的的保留字符可以在URL中非编码使用
blog/1/[hii这是[]标题
实际上是无效的URL。