Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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
Javascript 如果没有查询字符串,则添加查询字符串_Javascript_.htaccess_Redirect_Url Redirection - Fatal编程技术网

Javascript 如果没有查询字符串,则添加查询字符串

Javascript 如果没有查询字符串,则添加查询字符串,javascript,.htaccess,redirect,url-redirection,Javascript,.htaccess,Redirect,Url Redirection,是否可以检查页面是否有查询字符串,如果没有,则添加查询字符串 我目前正在使用301重定向,但我想知道是否有更快/更干净的方法 示例:如果用户转到website.com/reflection,则他们将被重定向到website.com/reflection?code 如果用户转到website.com/reflection?code2,则不会重定向 谢谢大家! 编辑:我不介意是客户端还是服务器端,但我更喜欢使用最干净、对用户影响最小的方法 编辑2: 这是我尝试使用重新布线规则后的访问权限。然而,当访

是否可以检查页面是否有查询字符串,如果没有,则添加查询字符串


我目前正在使用301重定向,但我想知道是否有更快/更干净的方法

示例:如果用户转到
website.com/reflection
,则他们将被重定向到
website.com/reflection?code

如果用户转到
website.com/reflection?code2
,则不会重定向

谢谢大家!

编辑:我不介意是客户端还是服务器端,但我更喜欢使用最干净、对用户影响最小的方法

编辑2: 这是我尝试使用重新布线规则后的访问权限。然而,当访问/转诊时,什么也没有发生

RewriteEngine On

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^referral/?$ /referral.php?123

Options -Indexes
ErrorDocument 403 /404.php
ErrorDocument 404 /404.php


# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]


# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]


RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^([^.]+)$ $1.php [NC,L]
寡妇位置 如果
window.location.search
返回空字符串,则没有查询参数

然后,您可以使用此行设置查询参数
window.location.search=“key=value”

  • 如果这样做,页面将刷新
  • 主要浏览器都完全支持它,请参见
  • 这里给出的答案假设您可以访问窗口对象(即:您是客户端)
  • 这个解决方案也有点“脏”,因为它将加载页面,然后从客户端重定向(更好的处理方法是在服务器上)

    • 您可以在服务器端使用mod_rewrite来避免额外的页面加载。检查
      %QUERY\u STRING
      是否为空(将其与
      ^$
      进行比较),如果为空,则重定向到另一页。如果不是,则什么也不做:

      RewriteEngine On
      RewriteCond %{QUERY_STRING} ^$
      RewriteRule ^referral/?$ /referral.php?code
      

      您尝试过什么吗?您希望它是客户端还是服务器端?您想要Javascript解决方案吗?这并不重要。我更喜欢使用最干净的东西。我目前正在使用301重定向,但我想知道是否有什么东西对用户来说不那么凌乱/更快。它似乎对我不起作用。我已经将我当前的htaccess作为编辑添加到原始post中。您可能需要重新排序一些规则。
      L
      标志告诉Apache停止检查以下匹配的规则,因此它可能无法通过。我已将其上移到顶部,但它似乎仍然不起作用。我感谢你的帮助!将L标志添加到该规则中如何?也许它仍然符合你在底部的“一网打尽”规则。还有,它的确切URL应该是什么?是真的/引用(如域的根)吗?添加L没有帮助。是的,url是
      https://www.website.com/referral