问题描述
我的网站中具有以下文件夹结构:
example.com/
reports/
causelist/
final_causelist.PHP
我有一个指向final_causelist.PHP页面的链接/ URL,如下所示:
http://example.com/reports/causelist/final_causelist.PHP?wb_sno=23&dated=2020-10-26&j_names=Mr.+ABC
我要访问如下页面:
http://example.com/23/2020-10-26/Mr.+ABC
对于上述情况,我在 causelist 文件夹中使用以下代码创建了 .htaccess :>
RewriteEngine on
RewriteBase /reports/causelist/
Options -Indexes
RewriteRule ^(\d+)/([a-z-]+)/(.+)/$ /final_causelist.PHP?wb_sno=$1&dated=$2&j_names=$3 [L,B]
但是它没有显示该页面,并且抱怨在此服务器上找不到请求的页面吗?
解决方法
您的正则表达式与date
部分不正确匹配,并且在使用/
时必须从目标中删除前导RewriteBase
。
Options -Indexes
RewriteEngine on
RewriteBase /reports/causelist/
RewriteRule ^(\d+)/([\d-]+)/(.+?)/?$ final_causelist.php?wb_sno=$1&dated=$2&j_names=$3 [L,QSA]
,
请您尝试以下。
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(\d+)/(\d{4}-\d{2}-\d{2})/(.+?)/?$
RewriteRule ^.*$ /reports/causelist/final_causelist.php?wb_sno=%1&dated=%2&j_names=%3 [QSA,NE,NC,L]