是否可以检查某个网页是否有查询字符串,然后在没有查询字符串的情况下添加一个?
我目前正在使用301重定向,但我想知道是否有更快/更干净的方法?
示例:如果用户转到website.com/referral
,则他们会重定向到website.com/referral?code
。
如果用户转到website.com/referral?code2
,则他们不会重定向。
谢谢!
编辑:我不介意它是客户端还是服务器端,但我更喜欢使用最干净的方法并最大限度地影响用户。
编辑2: 尝试使用改写规则后,这是我的htaccess。但是,在访问/推荐时没有任何反应。
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]
答案 0 :(得分:1)
您可以在服务器端执行此操作,以避免使用mod_rewrite额外加载页面。检查%QUERY_STRING
是否为空(将其与^$
进行比较),如果是,则重定向到另一页。如果不是,请不要做任何事情:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^referral/?$ /referral.php?code
答案 1 :(得分:0)
如果window.location.search
返回空字符串,则没有查询参数。
然后,您可以使用此行window.location.search = "key=value"