首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将网址重写为所有小写字母,并使用.htaccess文件将一些网址重定向到主页

将网址重写为所有小写字母,并使用.htaccess文件将一些网址重定向到主页
EN

Stack Overflow用户
提问于 2016-09-16 15:39:02
回答 1查看 170关注 0票数 0

我的问题是,我想为.htaccess文件编写自己的规则。我在网上搜索过,他们没有告诉我如何写我自己的具体规则。我只知道它使用正则表达式。我对正则表达式知之甚少。

我正在寻找的是我有以下链接

代码语言:javascript
复制
http://example.com/work/project-1 
http://example.com/work/project-2

当用户像这样输入时

代码语言:javascript
复制
http://example.com/work/PrOJect-2

我希望他们重定向到(将所有大写转换为小写)

代码语言:javascript
复制
http://example.com/work/project-2 

但是当用户像这样输入时

代码语言:javascript
复制
http://example.com/work/ 

代码语言:javascript
复制
http://example.com/work  

我想重定向到主页。

为此,我有htaccess文件,它有一些规则,如

代码语言:javascript
复制
RewriteEngine On
RewriteRule ^work(.*)/([^/]*) work-single.php$1?slug=$2 [QSA]

请帮我写这些规则。

EN

回答 1

Stack Overflow用户

发布于 2016-09-16 15:45:24

你想要实现的目标叫做重写。

下面是一个有效的.htaccess文件示例:

代码语言:javascript
复制
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url_params=$1 [L,QSA]

使用上述规则集的结果是,来自请求的完整URL将在服务器端传递到index.php,在那里可以使用以下命令获取字符串:

代码语言:javascript
复制
$urlString = $_GET['url_params'];

并进一步处理,例如将字符串切片为标记数组:

代码语言:javascript
复制
$urlTokens = explode('/', $urlString);

foreach($urlTokens as $token){

    // do something with each token

}

最后分析令牌(这是一项如今大多数人实际上不会手动完成的任务,因为使用了自动处理这一点的框架。例如,Zend框架),对于每个有效的“令牌”,您采取适当的行动(在现代框架中这被称为“路由”)。

有关如何设置url重写的完整教程,请查看:https://code.tutsplus.com/tutorials/using-htaccess-files-for-pretty-urls--net-6049

它可以非常简单,也可以非常复杂--这取决于你的需求。

请记住,这只是一个示例,可能不适用于您的实际情况,您可能希望自定义它以满足您的需求-或者至少从中学习并解决您的问题。

我建议你阅读和学习更多关于这个主题的知识,这会让你更容易使用这项技术。

希望能帮上点忙

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

https://stackoverflow.com/questions/39526158

复制
相关文章

相似问题

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