首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htaccess mod重写有一些问题

htaccess mod重写有一些问题
EN

Stack Overflow用户
提问于 2016-12-30 20:10:38
回答 4查看 76关注 0票数 2

大家好,大家都在想,我是否可以挑选你的大脑,并尽可能地描述。

因此,我试图创建一个页面,该页面将根据用户选择的选项加载标题和类别(动态从数据库中)。

站点名用作我的域名

因此,为了更清楚一点,我有一个名为sitename/2017/slot.php?gp= clearer &sn=title的文件和变量。

每个行的类别和标题存储在数据库中,我想要做的是使一个干净的URL看起来像这个站点/2017/槽/类别/标题/

因此,当查看像sitename/2017/slot.php?gp= the &sn= title这样的页面时,页面将加载所有内容并正确显示,并且变量正在设置,就像我在browser选项卡的标题中看到的那样。

当我使用mod重写使其干净时,当.htaccess被更改和上传,我导航到新的清洁URL站点名/2017/槽/类别/标题/它显示变量没有被设置,因为它们不再出现在浏览器的标题选项卡中,而且页面也不再使用我的css。下面我添加了我的htaccess规则,任何帮助和反馈都是非常感谢的。

代码语言:javascript
复制
#change this sitename/2017/slot.php?gp=category&sn=title
#to this sitename/2017/slot/category/title/
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^slot/([a-z-]+)/([a-z-]+)/ slot.php?gp=$1&sn=$2 [NC,L]

这里是incase,是在slot.php中使用的php代码im,我正在连接到我的数据库,没有任何问题,在下面的代码运行了一个while循环之后,获得了用户单击的行的数据。

代码语言:javascript
复制
if($_GET['gp'] && $_GET['sn']){
    $gp = preg_replace('#[^a-zA-Z-]#i', '', $_GET['gp']);
    $sn = preg_replace('#[^a-zA-Z-]#i', '', $_GET['sn']);
}

这是我的htaccess中的完整代码

代码语言:javascript
复制
#make custom page not found
#ErrorDocument 404 /filenotfound.php

#stop directory file listing in all folders
IndexIgnore *

#make pages have www. in them
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.org
RewriteRule ^(.*)$ http://www.example.org/$1 [R=permanent,L]

#change this slot.php?gp=category&sn=title
#to this sitename/2017/slot/category/title/
Options -MultiViews +FollowSymLinks
RewriteRule ^slot/([a-z-]+)/([a-z-]+)/ /2017/slot.php?gp=$1&sn=$2 [R=302]
EN

回答 4

Stack Overflow用户

发布于 2016-12-30 20:13:39

如果您的URL以2017开头,则必须将其包含在RewriteRule中。

代码语言:javascript
复制
RewriteRule ^2017/slot/([a-z-]+)/([a-z-]+)/ slot.php?gp=$1&sn=$2 [NC,L]
票数 0
EN

Stack Overflow用户

发布于 2016-12-30 20:14:06

您滥用了^,它与路径的起始部分( sitename/后面的部分)匹配。也就是说,以^slot/开头的规则只匹配sitename/slot/,而不匹配sitename/2017/slot/。你的规则应该是这样的:

代码语言:javascript
复制
#change this sitename/2017/slot.php?gp=category&sn=title
#to this sitename/2017/slot/category/title/
RewriteRule ^2017/slot/([a-z-]+)/([a-z-]+)/ slot.php?gp=$1&sn=$2 [NC,L]
票数 0
EN

Stack Overflow用户

发布于 2016-12-30 20:31:13

我可以参加聚会吗?

代码语言:javascript
复制
RewriteRule ^sitename/2017/slot/([a-z-]+)/([a-z-]+)/ /slot.php?gp=$1&sn=$2 [NC,L]

如果sitename是域名,我将把我的答案改为:

代码语言:javascript
复制
RewriteRule ^2017/slot/([a-z-]+)/([a-z-]+)/ /slot.php?gp=$1&sn=$2 [NC,L]

这几乎和Dekel的一样,但不完全是:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41402133

复制
相关文章

相似问题

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