Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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规则_Php_Regex_Apache_.htaccess - Fatal编程技术网

Php 如何为此写入htaccess规则

Php 如何为此写入htaccess规则,php,regex,apache,.htaccess,Php,Regex,Apache,.htaccess,我是htaccess规则的新手,我发现很难编写htaccess规则进行转换 至 我试过这些规则,但没用 我写了这个,但它删除了整个查询字符串,包括1 像这样 这里,%1指的是前一个重写cond的第一个匹配组,而$1则指的是此重写规则中的第一个匹配组,如重写规则(.*)/category/$1。报告说: 重写第二个反向引用:这些是形式为%N(0的反向引用。请将此代码放入文档\u ROOT/.htaccess文件: RewriteEngine On RewriteBase / Rewrite

我是htaccess规则的新手,我发现很难编写htaccess规则进行转换



我试过这些规则,但没用


我写了这个,但它删除了整个查询字符串,包括1
像这样

这里,
%1
指的是前一个
重写cond
的第一个匹配组,而$1则指的是此
重写规则中的第一个匹配组,如
重写规则(.*)/category/$1
。报告说:


重写第二个反向引用:这些是形式为%N(0的反向引用。请将此代码放入
文档\u ROOT/.htaccess
文件:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+category\.php\?cat_id=([^\s&]+) [NC]
RewriteRule ^ category/%1? [R=302,L]

RewriteRule ^category/([^/.]+)/?$ category.php?cat_id=$1 [L,QSA,NC]

一旦您确认它对您有效,请将
302
更改为
301

请定义“不起作用”并包含您已有的代码。而不是在此处显示您尝试的代码的链接。
RewriteRule^category/([0-9]+)/?$category.php?cat_id=$1[NC]
并确保启用了mod_rewrite。我已添加了我的代码。请查看是否要转换用户查询
http://www.frontieragturf.com/category.php?cat_id=1
内部执行
http://www.frontieragturf.com/category/1
或反之亦然?你的问题读起来似乎是前者,但后者更符合逻辑l、 解释可以提高答案的质量。Anubhav你的答案是有效的,但是现在它可以为每个链接添加类别。例如:以前的图像url是这样的,现在是这样的。有什么建议吗?而且这个规则只是重定向
/category.php?cat_id=123
,所以它不会影响
/images
。你知道吗最有可能使用相对路径作为image/css/js。只需在css、js、images文件中使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以
http://
或斜杠
/
开头。您还可以尝试将其添加到页面的HTML标题中:
,以便每个URL是从该URL而不是当前URL解析的。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^category\.php$
RewriteCond %{QUERY_STRING} ^cat_id=(\d+)$ [NC]
RewriteRule .* /category/%1? [R=302,L]
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+category\.php\?cat_id=([^\s&]+) [NC]
RewriteRule ^ category/%1? [R=302,L]

RewriteRule ^category/([^/.]+)/?$ category.php?cat_id=$1 [L,QSA,NC]