Php 如何为此写入htaccess规则
我是htaccess规则的新手,我发现很难编写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
至
我试过这些规则,但没用
我写了这个,但它删除了整个查询字符串,包括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]