我一直在苦苦思索究竟该搜索什么才能找到这个问题的答案,所以我想我应该问一下。
我正在用 PHP 构建一个小型 CMS 脚本,并希望美化我的 URL。我可以将根级请求index.php
作为变量发送到我的 URL,例如example.com/index.php?p=about-us
发送到example.com/about-us
。但是,如果不删除此功能,我想将请求重定向example.com/blog/a-post
到example.com/blog.php?b=a-post
。如何才能实现这一点,而不会被原始索引重写所消耗?
如果我用来描述我的问题的术语不太正确,我深感抱歉,因为我已经有一段时间没有进行任何编码了,而且我感觉生疏极了!
- 编辑 -
我目前拥有的代码如下:
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+index\.php\?([^\s&]+) [NC]
RewriteRule ^ %1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ index.php?p=$1 [L,QSA]
我希望用户能够访问该网址
url.com/blog/a-post
但我希望它能真正访问
url.com/blog.php?b=a-post
答案1
RewriteEngine On
RewriteRule ^work(.*)/([^/]*) work-single.php$1?slug=$2 [QSA]
work 是伪文件夹,work-single.php 是获取变量请求的文件