Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Apache mod rewrite不接受查询字符串中的双倒逗号_Php_Regex_Linux_Apache_Mod Rewrite - Fatal编程技术网

Php Apache mod rewrite不接受查询字符串中的双倒逗号

Php Apache mod rewrite不接受查询字符串中的双倒逗号,php,regex,linux,apache,mod-rewrite,Php,Regex,Linux,Apache,Mod Rewrite,我的重写代码不允许在URL的查询字符串中使用双倒逗号,下面是导致我进入404页面的URL: 该代码正确处理和处理不包含“”的其他URL 以下是我的重写代码: Options +FollowSymlinks RewriteEngine on RewriteRule ([A-Za-z0-9-_"?]+)$ read.php?post=$1 [NC,L] 服务器正在使用linux操作系统。我不知道发行版及其版本。您可以使用此规则: RewriteCond %{REQUEST_

我的重写代码不允许在URL的查询字符串中使用双倒逗号,下面是导致我进入404页面的URL:

该代码正确处理和处理不包含“”的其他URL

以下是我的重写代码:

Options +FollowSymlinks
RewriteEngine on
RewriteRule    ([A-Za-z0-9-_"?]+)$    read.php?post=$1    [NC,L]  

服务器正在使用linux操作系统。我不知道发行版及其版本。

您可以使用此规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ([^/]+)/?$ read.php?post=$1 [QSA,L]

最好是使用一个否定的字符类,而不是在下一个字符类中匹配所有字符。

谢谢。这很有效。