您好我正在尝试确保我的所有网址都已更正为以正斜杠结尾,因此如果用户键入
http://www.mydomain.com/blogPost
它会变成
http://www.mydomain.com/blogPost/
我在这里找到了这个问题的答案How can I force some pages to end in a slash [.htaccess](感谢 Andrew G. Johnson)。
除了有 $_GET 变量之外,这个解决方案几乎可以完美地工作。所以当 url 有这样的 $_GET 变量时
http://www.mydomain.com/blogPost/^start=10
htaccess 将其重写为
http://www.mydomain.com/blogPost/^start=10/
这会导致错误。
从堆栈溢出问题复制的原始代码如下所示
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301]
因此,当有 $_GET 变量时,要让 htaccess 忽略 url,我尝试在上面的代码中添加 RewriteCond 以检查 REQUEST_URI 是否有 ^(因为在此站点上 $_GET 变量以 ^ 而不是 ? 开头)而且我已经尝试过以下所有但没有任何作用。谁能指出我正确的方向
RewriteCond %{REQUEST_URI} [^\^]
RewriteCond %{REQUEST_URI} ![^\^]
RewriteCond %{REQUEST_URI} ^(.*[^\^])
(我也用 {QUERY_STRING} 尝试了上述方法)