我想在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 [L]
RewriteRule ^blog.php/(\d+)/([A-Za-z0-9-_[]]+)/?$ SocialNetwork/blog.php?id=$1&title=$2 [L]
</IfModule>
适用于
blog/1
blog/1/hii
blog/1yooo_title
但不适用于
blog/1/[hii-this is [] title
答案 0 :(得分:2)
在上一次重写规则中,尝试转义方括号。此外,如果您需要匹配空格,您需要在其中包含\:
^blog.php/(\d+)/([A-Za-z0-9-_\[\]\s]+)/?$
或许可以考虑更简单的接受标题中的任何内容:
^blog.php/(\d+)/(.+)/?$
另一点是您的网址中不应包含空格。它们应该被转义为“+”或%20。因此,根据这一点,你的正则表达式会发生变化,除了我提出的最后一个应该有效。
答案 1 :(得分:0)
我很确定你不能在URL中使用空格。如初。
答案 2 :(得分:0)
只有字母数字,特殊字符“$ -_。+!*'(),”和用于其保留目的的保留字符可以在URL中以未编码的形式使用。