我的重写代码不允许在 URL 的查询字符串中使用双引号,以下是导致我进入 404 页面的 URL: https://easypaper.cf/posts/Threats+of+using+%E2%80%9CShared+Wi-Fi%E2%80%9D .
代码正确处理和处理其他不包含“
的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]
最好使用否定字符类,而不是匹配直到下一个 /
的所有字符,而不是包含字符类中的每个字符。
关于php - Apache mod-rewrite 不接受查询字符串中的双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44858709/