繁体   English   中英

除了重写规则中的某些URL

[英]Except some url from a rewrite rule

我将此规则插入了.htaccess文件中:

RewriteRule ^([A-Za-z0-9-]+)/?$   index.php?content=category&categoryname=$1  [NC,L]

通过这种方式,我可以获得像这样的友好网址: http:// localhost / mysite / london

我也想为我的联系页面使用一个友好的URL,例如: https://localhost/mysite/index.php?content = message成为: https:// localhost / mysite / contact

但是如果我将以下规则插入.htaccess ...

RewriteRule   ^contact/?$   index.php?content=message  [NC,L] 

...这似乎不起作用,因为类别规则似乎会影响此规则。

实际上,如果我注释掉类别规则...

#RewriteRule   ^([A-Za-z0-9-]+)/?$   index.php?content=category&categoryname=$1  [NC,L]

...联系页面的url友好规则有效( https:// localhost / mysite / contact

因此,我正在寻找从类别规则中排除某些参数的可能性,以便在某些情况下允许重定向到另一个URL。

感谢您的任何建议...

首先,您需要确保联系规则放在更通用的规则之前,以便htaccess可以首先对其进行处理:

RewriteRule ^contact/?$ index.php?content=message [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?content=category&categoryname=$1 [NC,L]

如果您有其他方法,则在htaccess甚至到达联系规则之前,始终会检查并匹配通用规则。

请注意,尽管您编写规则的方式只会匹配以下网址,例如:

https://exmaple.com/contact

但不是

https://exmaple.com/contact/something-else

但是,查看您的通用规则,我认为这是故意的。

暂无
暂无

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

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