Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.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 在Wordpress安装中重写mod_以替换多个键/变量_Php_Wordpress_.htaccess_Mod Rewrite - Fatal编程技术网

Php 在Wordpress安装中重写mod_以替换多个键/变量

Php 在Wordpress安装中重写mod_以替换多个键/变量,php,wordpress,.htaccess,mod-rewrite,Php,Wordpress,.htaccess,Mod Rewrite,我正在尝试创建mod_重写规则以重定向wordpress站点中的以下url: www.mywebsite.com/pg/2/row/20/filter/all/filtercity/foo,酒吧 到 www.mywebsite.com/detail?pg=2&row=20&filter=all&filtercity=foo,bar 我的问题是wordpress在.htaccess中包含了以下规则: # BEGIN WordPress <IfModule mod_rewrite.c>

我正在尝试创建mod_重写规则以重定向wordpress站点中的以下url:

www.mywebsite.com/pg/2/row/20/filter/all/filtercity/foo,酒吧

www.mywebsite.com/detail?pg=2&row=20&filter=all&filtercity=foo,bar

我的问题是wordpress在.htaccess中包含了以下规则:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

我从服务器上得到一个404错误。不知道为什么。有什么想法吗

多谢各位

编辑1:

我尝试将[L]添加到重写规则的末尾(见下文)

并将标准Wordpress重写规则移到下一行

RewriteRule . /index.php [L]
在这样做之后,我不再得到服务器404错误。但是CSS文件停止加载

1-如何将.htaccess配置为仅在url 查找以下键

/pg和/或/行和/或/过滤器和/或/过滤器城市

读这个

当您有一个标准的url格式时,上面的答案可以帮助您解决问题

2-url也可以有所有的键,或者只有几个键。对于 例如:

/pg/2/row/20

/行/20/过滤器/全部

您正在尝试做一些脱离URL语义的事情。当您尝试访问资源时,每次的路径都应该相同。如果您在起始页,则可以通过pg/0/。但是谁能阻止你脱离URL语义呢?:)在这种情况下,您必须将所有组合作为.htaccess中的规则。按照上面的解决方案,所有URL组合都可以使用

我的建议是:

  • 如果您不熟悉.htaccess,并且您只需要重写URL(尽管它很强大),请不要与之抗争
  • 将所有内容传递到索引文件并在代码中进行解析,对于您的案例,请查看此页面
RewriteRule ^pg/([a-zA-Z0-9]+)/?$ ?pg=$2 [R]
RewriteRule ^pg/([a-zA-Z0-9]+)/?$ detail?pg=$1 [R]
RewriteRule ^pg/([a-zA-Z0-9]+)/?$ ?pg=$1 [R,L]
RewriteRule . /index.php [L]