首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.htaccess中的多个重写规则可重定向到所需的页面

.htaccess中的多个重写规则可重定向到所需的页面
EN

Stack Overflow用户
提问于 2012-01-09 21:48:42
回答 1查看 5.3K关注 0票数 1

我正在尝试设置一个网站,在那里我创建了一个永久链接,就像wordpress一样,但特定于该网站。因此,当用户点击文章时,它应该喜欢

代码语言:javascript
复制
http://www.sitename.com/url-slug

此外,当用户单击目录时,它应该重定向如下所示的内容

代码语言:javascript
复制
http://www.sitename.com/category/category-slug

类似地,当点击集合、用户、页面时,应该分别重定向如下

代码语言:javascript
复制
http://www.sitename.com/sets/set-slug

http://www.sitename.com/user/user-full-name
http://www.sitename.com/page/page-slug

下面是我在.htaccess中使用的代码,我非常确定它是不正确的

代码语言:javascript
复制
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule (.*)$ ./single.php?id=$1 
RewriteRule ^category/(.*)/ category.php?id=$1 [L]


Options +FollowSymLinks
RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://www.sitename.com/$1 [R=301,L]

有人能告诉我哪里出错了吗?我需要这些页面分别调用它们各自的页面,即single.php,category.php,sets.php,users.php和page.php来获取和显示数据。我是一个新手在.htaccess,所以,任何帮助都是感激的。

EN

回答 1

Stack Overflow用户

发布于 2012-01-09 22:56:25

我假设您在位于网站根目录的.htaccess中没有其他规则

代码语言:javascript
复制
RewriteEngine on
RewriteBase /

#if for an existing directory or file
RewriteCond %{SCRIPT_FILENAME} -d
RewriteCond %{SCRIPT_FILENAME} -f
#then do nothing
RewriteRule . - [L]

#otherwise
#if it is for a slug (assuming alphanumeric and dashes), send to single
RewriteRule ^([-a-zA-Z0-9]+)/?$ single.php?id=$1 [L]

#if a category 
RewriteRule ^category/([-a-zA-Z0-9]+)/?$ category.php?id=$1 [L,NC]

#if a sets
RewriteRule ^sets/([-a-zA-Z0-9]+)/?$ sets.php?id=$1 [L,NC]

#if a sets
RewriteRule ^user/([-a-zA-Z0-9]+)/?$ users.php?id=$1 [L,NC]

#if a page
RewriteRule ^page/([-a-zA-Z0-9]+)/?$ page.php?id=$1 [L,NC]
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8789384

复制
相关文章

相似问题

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