Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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
Php 不同的htaccess mod_重写_Php_.htaccess_Mod Rewrite_Seo - Fatal编程技术网

Php 不同的htaccess mod_重写

Php 不同的htaccess mod_重写,php,.htaccess,mod-rewrite,seo,Php,.htaccess,Mod Rewrite,Seo,我试图为我的网站进行SEO排序,但我似乎无法理解这种情况 我想要4个查询参数,$cat,$subcat,$page,$othervars 但我需要一个htaccess规则来允许这些值: domain.com/cat/page domain.com/cat/subcat/page domain.com/cat domain.com/cat/subcat/page/other 我如何才能做到这一点,到目前为止,我所拥有的只是: RewriteEngine On RewriteRule ^([^/]*

我试图为我的网站进行SEO排序,但我似乎无法理解这种情况

我想要4个查询参数,
$cat
$subcat
$page
$othervars

但我需要一个htaccess规则来允许这些值:

  • domain.com/cat/page
  • domain.com/cat/subcat/page
  • domain.com/cat
  • domain.com/cat/subcat/page/other
  • 我如何才能做到这一点,到目前为止,我所拥有的只是:

    RewriteEngine On
    RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /beta/index.php?cat=$1&cat2=$2&page=$3&var=$4 [L]
    

    改为用PHP进行解析

    .htaccess:

    RewriteEngine On
    RewriteRule ^(.*)$ /beta/index.php?var=$1 [L]
    
    。。。在index.php中

    $vars = explode("/",$_GET['var']);
    $cat = isset($vars[0]) ? $vars[0] : false;
    $subcat = isset($vars[1]) ? $vars[1] : false;
    $page = isset($vars[2]) ? $vars[2] : false;
    $othervars = isset($vars[3]) ? $vars[3] : false;
    

    我认为最好使用以下4条规则:

    RewriteEngine On
    RewriteRule ^([^/]+)/?$ /beta/index.php?cat=$1 [L,R=301]
    RewriteRule ^([^/]+)/([^/]+)/?$ /beta/index.php?cat=$1&page=$2 [L,R=301]
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /beta/index.php?cat=$1&cat2=$2&page=$3 [L,R=301]
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /beta/index.php?cat=$1&cat2=$2&page=$3&var=$4 [L,R=301]
    

    抱歉,这不起作用,它是重定向而不是重写。谢谢,这可能是一种解决方法,我将保留问题,以防有人有其他解决方法。@ChristopherBrix不一样,你发布了重定向,Hampus发布了实际重写规则。汉普斯:这一切似乎都在按我所希望的方式运作:)谢谢你@克里斯托弗利克斯是的,对不起。至少差不多一样-如果我可以的话,我会给你分数。。。
    RewriteEngine On
    RewriteRule ^([^/]+)/?$ /beta/index.php?cat=$1 [L]
    RewriteRule ^([^/]+)/([^/]+)/?$ /beta/index.php?cat=$1&page=$2 [L]
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /beta/index.php?cat=$1&cat2=$2&page=$3 [L]
    RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /beta/index.php?cat=$1&cat2=$2&page=$3&var=$4 [L]