首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找rewriteRule解决方案

寻找rewriteRule解决方案
EN

Stack Overflow用户
提问于 2016-06-24 12:39:31
回答 3查看 33关注 0票数 1

我有个网址重写的问题。我网站的所有主题网址都指向www.mywebsite.com/topic.php? topic =id,我想将这些urls更改为www.mywebsite.com/Top-id.html。

我是在一个.htaccess文件中这样做的:

代码语言:javascript
复制
Options +FollowSymlinks

RewriteEngine on

RewriteRule ^topic-([0-9]+)\.html$ /topic.php?topic=$1

现在,我希望所有指向/topic.php?topic=id的url都像Top-id.html一样被重写,以便只为用户显示一个url而不重写我的所有代码。可以这样做吗?

我用这种方式尝试了R标志:

代码语言:javascript
复制
RewriteRule ^topic-([0-9]+)\.html$ /topic.php?topic=$1 [R]

但是它所做的与我想要的完全相反,因为它将所有的urls转换为( topic.php?topic=id ),比如(Top-id.html)。

我指定,我不是在寻找的解决方案--“复制内容问题”

任何帮助都是很好的,谢谢

EN

回答 3

Stack Overflow用户

发布于 2016-06-24 12:44:18

你可以试试这个,我为你跳这个作品

代码语言:javascript
复制
RewriteCond %{THE_REQUEST} \s/topic\.php\?id=([_0-9a-zA-Z-]+)\s [NC]
RewriteRule ^%1? [R=301,L]
RewriteRule ^([_0-9a-zA-Z-]+)$ /topic.php?id=$1 [L]


RewriteCond %{THE_REQUEST} \s/topic\.php\?id=([_0-9a-zA-Z-]+)\s [NC]
RewriteRule ^ %1.html? [R=301,L]
RewriteRule ^([_0-9a-zA-Z-]+?)(?:\.html)?$ /index.php?id=$1 [NC,L]
票数 0
EN

Stack Overflow用户

发布于 2016-06-24 12:46:44

将以下内容置于现有规则之上( RewriteEngine on行后):

代码语言:javascript
复制
RewriteCond %{THE_REQUEST} /topic\.php\?id=(.+)\sHTTP [NC]
RewriteRule ^ /topic-%1.html [L,R]
票数 0
EN

Stack Overflow用户

发布于 2016-06-24 12:58:55

您只需要使用以下内容:

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^topic-([^-]*)\.html$ /topic.php?topic=$1 [L]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38013685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档