首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用mod_rewrite重写带有斜杠的get参数

使用mod_rewrite重写带有斜杠的get参数
EN

Stack Overflow用户
提问于 2014-09-26 22:33:28
回答 1查看 714关注 0票数 0

我有一个网站,其中有几个独立的网页(如signup.php)和一个主要的PHP文件,显示其余的页面使用一个GET参数。

我希望将HTTP请求重写到服务器,以便请求如下:

http://example.com/website/settings/将显示页面

http://example.com/website/index.php?page=settings,而不影响所有其他页面。

我对mod_rewrite非常陌生,我的所有尝试都产生了404或500个响应代码。编写RewriteCond和RewriteRule的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-26 23:16:40

将这些规则添加到文档根目录中的htaccess文件中( website文件夹位于其中):

代码语言:javascript
运行
复制
RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+website/(?:index\.php|)\?page=([^&]+)/(&|\ |$)
RewriteRule ^ /website/%1/ [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^website/(.+)/$ /website/index.php?page=$1 [L,QSA]

或者,如果这样做更有意义,您可以将这些规则放在website文件夹中:

代码语言:javascript
运行
复制
RewriteEngine On
RewriteBase /website/

RewriteCond %{THE_REQUEST} \ /+website/(?:index\.php|)\?page=([^&]+)/(&|\ |$)
RewriteRule ^ %1/ [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ index.php?page=$1 [L,QSA]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26069234

复制
相关文章

相似问题

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