apache - htaccess 重写和重定向不起作用
问题描述
我有一个特殊的场景:旧的网站网址是这样制作的:http://www.mysite.it/it/my-old-link
新的是这样制作的:http://www.mysite.it/vini.php?famiglia=my-new-link
我想http://www.mysite.it/it/my-old-link
指向指向的链接http://www.mysite.it/vini.php?famiglia=my-new-link
这是为了保持 SEO 位置。http://www.mysite.it/it/my-old-link will be redirected
所以,当有人点击搜索结果http://www.mysite.it/vini.php?famiglia=my-new-link
但是我找不到编辑 .htaccess 文件的方法。
我已经设置了重写规则和重定向,但它不起作用;这是 .htaccess 文件的示例:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /
RewriteRule ^/?([^/d]+)/?$ /vini.php?famiglia=$1 [L,QSA]
Redirect 302 http://www.mysite.it/it/my-old-link http://www.mysite.it/my-new-link
ErrorDocument 404 http://www.mysite.it/index.php
但它不起作用:如果我http://www.mysite.it/it/my-old-link
在浏览器中输入,我会收到 404 页面错误(index.php)
但是:如果我http://www.mysite.it/my-new-link
在浏览器上输入,我会得到正确的页面。
有没有办法解决这个问题?
TIA托尼
解决方案
In case you are looking for specific rule as per shown samples then try following.
RewriteEngine ON
RewriteRule ^it/my-old-link/?$ vini.php?famiglia=my-new-link [NC,L]
In case you are looking for Generic rules, where if a URI is NOT present as a file or directory then try following. Please make sure either you put above or following rules only at a time.
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ vini.php?famiglia=my-new-link [NC,L]
推荐阅读
- netlogo - Netlogo:单个代理的补丁代理集
- nginx - 为什么将域连接到“Shopify”要求提供 CNAME 和 A 记录?
- javascript - 无法获取数据(TypeError:无法获取)
- android - 广告在颤动中重叠底部导航
- reporting-services - 如何使用多个数据集在单个 SSRS 报告中获取数据
- python-3.x - 如何从高阶函数返回值?
- angular - angular/REST-application 中的 ngx-mat-datetime-picker 不会使用自定义 DateAdapter 更新值
- python - 如何将 PyQtGraph 小部件嵌入到基本的 Qt Designer GUI
- python - pytest mock 来自 pymongo 的查找、排序和限制函数
- excel - 索引/匹配公式中的动态工作表名称