繁体   English   中英

.htaccess RewriteRule无法用于具有相同代码的两个值

[英].htaccess RewriteRule not working for two values with same code

医生守则(工作中)

RewriteEngine On
RewriteRule ^doctors/([0-9]+)\/([a-z]+)\/([a-z]+)\/?$ doc.php?doc_code=$1&firstname=$2&lastname=$3 [L,NC,R=301] 
RewriteRule ^doctors/([0-9]+)\/([a-z]+)\/([a-z]+)\/([a-z]+)\/?$ doc.php?doc_code=$1&firstname=$2&lastname=$3&action=$4 [L,NC,R=301] 

药房代码(无效)

RewriteRule ^/pharmacy/([0-9]+)\/([a-z]+)\/?$ pharmacy.php?id=$1&name=$2 [L,NC,R=301] 
RewriteRule ^/pharmacy/([0-9]+)\/([a-z]+)\/([a-z]+)\/?$ pharmacy.php?id=$1&name=$2&action=$3 [L,NC,R=301] 

当我使用下面的代码时,它对于药房来说很好用,但是目的并没有解决,因为我希望链接显示为“ /药房”而不是“ /医生”:

 RewriteRule ^/doctors/([0-9]+)\/([a-z]+)\/?$ pharmacy.php?id=$1&name=$2 [L,NC,R=301] 
    RewriteRule ^/doctors/([0-9]+)\/([a-z]+)\/([a-z]+)\/?$ pharmacy.php?id=$1&name=$2&action=$3 [L,NC,R=301] 

完整的.htacess代码:

ErrorDocument 404 /404.php
AddDefaultCharset UTF-8
Header unset ETag
FileETag None


RewriteEngine On
RewriteRule ^doctors/([0-9]+)\/([a-z]+)\/([a-z]+)\/?$ doc.php?doc_code=$1&firstname=$2&lastname=$3 [L,NC,R=301] 
RewriteRule ^doctors/([0-9]+)\/([a-z]+)\/([a-z]+)\/([a-z]+)\/?$ doc.php?doc_code=$1&firstname=$2&lastname=$3&action=$4 [L,NC,QSA] 

RewriteRule ^pharmacy/([0-9]+)/([a-z]+)/?$ pharmacy.php?id=$1&name=$2 [L,NC,QSA] 
RewriteRule ^pharmacy/([0-9]+)/([a-z]+)/([a-z]+)/?$ pharmacy.php?id=$1&name=$2&action=$3 [L,NC,QSA]

取出斜线并关闭MultiViews选项:

Options -MultiViews

RewriteEngine On

RewriteRule ^pharmacy/([0-9]+)/([a-z]+)/?$ pharmacy.php?id=$1&name=$2 [L,NC,QSA] 
RewriteRule ^pharmacy/([0-9]+)/([a-z]+)/([a-z]+)/?$ pharmacy.php?id=$1&name=$2&action=$3 [L,NC,QSA]

另外,您也不需要R=301因为您不想在浏览器中显示内部URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM