我的问题是我想为.htaccess
文件编写自己的规则。我在互联网上搜索过,他们没有告诉我如何编写自己的特定规则。我所知道的是它使用正则表达式。我对正则表达式知之甚少。
我正在寻找的是我有以下链接
http://example.com/work/project-1
http://example.com/work/project-2
用户输入时
http://example.com/work/PrOJect-2
我希望他们重定向到(将所有大写字母转换为小)
http://example.com/work/project-2
但是当用户输入时
http://example.com/work/
或
http://example.com/work
我想重定向到主页。
为此,我有htaccess文件 有一些规则,如
RewriteEngine On
RewriteRule ^work(.*)/([^/]*) work-single.php$1?slug=$2 [QSA]
请帮我写下这些规则。
答案 0 :(得分:0)
您要实现的目标称为URL重写。
以下是工作.htaccess文件的示例:
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url_params=$1 [L,QSA]
使用上述规则集的结果是请求的完整URL在服务器端传递给index.php,其中可以使用以下命令获取字符串:
$urlString = $_GET['url_params'];
并进一步处理,例如将字符串切片为标记数组:
$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
它可能非常简单,或者完全复杂 - 取决于您的需求。
请记住,这只是一个示例,可能不适用于您的具体情况,您可能希望根据自己的需要进行自定义 - 或者至少从中学习并解决您的问题。
我建议您阅读并了解有关该主题的更多信息,这将使您更容易使用该技术。
希望它有所帮助