首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >htaccess -只重写包含"/“(Slash)的

htaccess -只重写包含"/“(Slash)的
EN

Stack Overflow用户
提问于 2015-02-18 21:51:37
回答 1查看 39关注 0票数 1

我对Apache重写规则有一些问题。

在我的the服务器上,存在以下带有前导"s“的文件(使用):

代码语言:javascript
复制
search.php
stats.php
status.php

现在,我想将search.php重写为简单的s。但是当我现在打电话给status.php时,我的search.php就被包括在内了。

代码语言:javascript
复制
RewriteEngine on
RewriteRule ^stats$ stats.php
RewriteRule ^status$ status.php
RewriteRule ^s search.php        #  <---
RewriteRule ^live$ live.php
RewriteRule ^about$ about.php
RewriteRule ^i$ item.php
RewriteRule ^compare$ compare.php
DirectoryIndex home.php

如果URL如下所示,如何强制Apache只将search.php重写为s

代码语言:javascript
复制
http://localhost/s/PARAM1/...

我试过RewriteRule ^s/ search.php,但没有成功。编辑: 404错误在.../s/PARAM1/...stats等工作。

我希望你能理解我的问题,尽管我对重写规则不太熟悉。

EN

回答 1

Stack Overflow用户

发布于 2015-02-18 22:16:56

重新排序您的规则,并使用regex来减少您的规则如下:

代码语言:javascript
复制
DirectoryIndex home.php
RewriteEngine on

# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^(statu?s|live|about|compare)$ $1.php [L,NC]
RewriteRule ^i$ item.php [L,NC]
RewriteRule ^s/ search.php [L,NC]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28594643

复制
相关文章

相似问题

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