我需要重写以下URL结构:
pyarrow
收件人:
http://website.com/business-directory/25/administration/
我添加了这个RewriteCond和RewriteRule,但是我无法使其正常工作。
http://website.com/departments/administration/
我一直在使用此在线工具进行测试,并获得了成功的结果。但是我不知道他们在验证规则的工具背后的逻辑。
RewriteCond %{HTTP_HOST} website.com
RewriteRule ^business-directory/.*/(.*)/$ /departments/$1/
我还是Linux和Apache的新手,因此我的故障排除技能受到限制。我尝试搜索error_log文件,并使用此命令通过grep将所有重写条目传递给管道,但是没有日志条目。当我点击要重写的URL时,我正在实时观看日志。
https://htaccess.madewithlove.be?share=11bb2f4c-7d70-5ee9-9551-2d81d5a5d340
直接来自Apache用户手册。
我正在运行的堆栈是Bitnami Wordpress Multisite。
答案 0 :(得分:0)
您实际上有几个问题。看来您要将business-directory/NN/name/
转换为departments/name/
。就像我说的那样,您需要在部门名称后添加斜杠。很好,但是只会将完全匹配项重写为business-directory/NN/name/
,而失败时将显示business-directory/NN/name/whosdead.html
。如果要转换所有URL,则需要捕获部门名称中的所有结尾:
RewriteRule ^business-directory/.*?/(.*?)(/.+?)?$ /departments/$1$2
将http://website.com/business-directory/62/coroner
转换为http://website.com/departments/coroner
将http://website.com/business-directory/62/coroner/
转换为http://website.com/departments/coroner/
将http://website.com/business-directory/62/coroner/whosdead.html
转换为http://website.com/departments/coroner/whosdead.html
。
一旦您确认重写引擎实际上正在处理您的规则,请尝试使用此RewriteCond来查看其效果是否更好。