我需要在.htaccess
文件的正则表达式中包含URL编码的符号,以获取不同语言的特殊字符。
我有以下内容,其中包含空格字符%20
:
RewriteRule ^search/([0-9a-zA-Z\s-]+)/?$ search.php?search=$1 [L,NC,QSA]
但是我需要能够包含õ
之类的字符,例如%C3%B5
。
基本上,我需要包含任何带有%
字符的URL编码字符。
对此将提供任何帮助或协助。
答案 0 :(得分:1)
您可以使用[^\/]
negated character class:
^search/([^\/]+)/?$
它匹配
^
-字符串的开头search/
-文字子字符串([^\/]+)
-捕获组1(与之匹配的内容用$1
引用):除/
之外的任意1个以上的字符/?
-可选的/
$
-字符串的结尾。答案 1 :(得分:0)
您可以在网站根目录.htaccess中使用此代码:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^search/([^/]+)/?$ search.php?search=$1 [L,NC,QSA]
MultiViews
选项,因为您的php
文件名与起始URI组件相同。 MultiViews
使用选项Apache's content negotiation module
(请参阅http://httpd.apache.org/docs/2.4/content-negotiation.html)来运行{strong>之前 mod_rewrite
,并使Apache服务器匹配文件扩展名的/search
。因此,如果/search.php
是URL,则Apache将提供RewriteCond
。search/
必须确保您与网站根目录中的目录IEnumerable<XDocument> WrapDocuments(MessageSettings messageSettings, IEnumerable<XDocument> documents);
不匹配。