我有这样的URL:
- https://example.com/mobile/brand(正确答案)
- https://example.com/hello-mobile/brand(错误的URL不令人兴奋)
我的第一个网址(移动的/品牌)是正确的,但当我编辑我的第一个网址(你好-手机/品牌)从浏览器然后第二个错误的网址也打开错误的路径。所有的类别和子类别的值来自动态与mysql和php。
目前我正在使用这个。htaccess文件的类别和子类别。请帮助解决这个问题。
Options -MultiViews
RewriteEngine on
RewriteRule ^([^/\.]+)/?$ category.php?slug=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)$ sub-category.php?slug1=$1&slug=$2 [L]
1条答案
按热度按时间rekjcdws1#
我从问题和评论中得到的印象是,你实际上是在问如何将
/hello-mobile/brand
重定向到/mobile/brand
,而与你如何在内部重写类别和子类别无关。如果这是你真正的问题,那么考虑这个例子:
这个例子将把所有请求重定向到一个类别,这个类别 * 不是 * 第一个
RewriteCond
(“移动的”或“desktop”)中提到的类别之一,重定向到默认类别“mobile”。您可以在http服务器的主机配置中实现这些规则。如果你正在使用一个廉价的主机提供商),那么你可以通过接受这种方法的缺点(速度,复杂性,可维护性,健壮性)来选择使用一个 * 分布式 * 配置文件(“.htaccess”)。
一开始使用
R=302
temporary 重定向是一个好主意。只有当一切都按预期工作时,才将其改为R=301
permanent 重定向。这可以避免客户端缓存响应的问题。