Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
.htaccess使用用户代理进行URL重定向_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

.htaccess使用用户代理进行URL重定向

.htaccess使用用户代理进行URL重定向,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我一直在试图找到解决我处境的办法,但没有一个奏效。我有以下htaccess文件,该文件执行以下操作: 它将site.com/m/page重定向到site.com/m/#page 我将site.com/d/page重定向到site.com/m/#page 它删除了.php扩展名和页面前面的公共模式 迄今为止的守则: Options +FollowSymlinks -MultiViews RewriteEngine On RewriteBase / RewriteRule ^[dm]/(

我一直在试图找到解决我处境的办法,但没有一个奏效。我有以下htaccess文件,该文件执行以下操作:

  • 它将site.com/m/page重定向到site.com/m/#page

  • 我将site.com/d/page重定向到site.com/m/#page

  • 它删除了.php扩展名和页面前面的公共模式

  • 迄今为止的守则:

    Options +FollowSymlinks -MultiViews
    
    RewriteEngine On    
    RewriteBase /
    
    RewriteRule ^[dm]/(.+)$ /m/#$1 [R=302,NE,L,NC]
    
    ## hide .php extension
    RewriteCond %{THE_REQUEST} \s/+common_([^.]+)\.php[\s?] [NC]
    RewriteRule ^ %1 [R=302,L,NE]
    
    ## To internally forward
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}/common_$1.php -f
    RewriteRule ^(.+?)/?$ common_$1.php [L]
    
    我想提出以下建议:

    a) 如果某些用户从iPhone“site.com/m/…”输入,请继续(不执行任何操作)

    b) 如果某些用户从桌面输入“site.com/m/page”将其重定向到“site.com/d/#page


    我非常感谢您的帮助。

    您可以为此使用新规则:

    Options +FollowSymlinks -MultiViews
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTP_USER_AGENT} !iphone [NC]
    RewriteRule ^m/(.+)$ /d/#$1 [R=302,NE,L,NC]
    
    RewriteRule ^[dm]/(.+)$ /m/#$1 [R=302,NE,L,NC]
    
    ## hide .php extension
    RewriteCond %{THE_REQUEST} \s/+common_([^.]+)\.php[\s?] [NC]
    RewriteRule ^ %1 [R=302,L,NE]
    
    ## To internally forward
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}/common_$1.php -f
    RewriteRule ^(.+?)/?$ common_$1.php [L]
    

    再次感谢你,阿努巴瓦。我已经测试过了,看起来很完美。如果有任何问题,我会在这里再次发表评论。你还会帮我解决这个问题吗?我快发疯了:当然我会检查你的新问题。