Php 在Wordpress安装中重写mod_以替换多个键/变量
我正在尝试创建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中包含了以下规则: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>
# 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]