【发布时间】:2021-07-07 18:22:54
【问题描述】:
我正在尝试进行重写,如果页面不存在,它会重写到类别页面。它与普通的 RewriteCond %{REQUEST_FILENAME} -f 有点不同,因为页面名称是基于 URL 的动态的。
如果有人访问动态路径名,例如“/contacts”
我首先希望它根据路径名检查以下文件夹/文件是否存在:
/[dynamicpath]/[dynamicpath].php
示例:
/contacts/contacts.php
如果不存在,请改写到下一页
/categories/category/category.php?cat_url=[dynamicpath]
示例:
/categories/category/category.php?cat_url=contacts
我尝试了以下方法,但是当文件存在并直接进入类别重写时,它会因第一个 RewriteRule 触发而失败。
RewriteCond %{SCRIPT_URL} ^(.+)
RewriteCond %{DOCUMENT_ROOT}/%1/%1.php !-f
RewriteRule (.+)/?$ $1/$1.php [QSA,L]
RewriteRule ^([\w-]+)/?$ /categories/category/category.php?cat_url=$1 [QSA,L]
【问题讨论】:
-
抱歉不清楚。能否请您用示例编写需求而不显示尝试的代码作为示例。
-
嗨,我已经重写了问题,希望这可以简化问题
标签: .htaccess mod-rewrite url-rewriting