我需要一点帮助。
我正在制作一个 php 页面,该页面收集查询字符串,针对数据库对其进行测试以查找匹配项,然后将用户重定向到网站的不同部分。
这是它目前的工作方式(没有 htaccess/mod_rewrite):
- 用户访问:domain.com/redirect/index.php?slug=Test_1
- php 页面清理并在数据库中查找“Test_1”并检索目标 URL 以将用户重定向到。(例如 domain.com/New_Test_1)
- 然后 php 页面 301 相应地重定向。
这部分工作正常。但是,由于我无法控制某些变量,我需要解释原始 URL(使用 htaccess/mod_rewrite),如下所示:
- domain.com/redirect/index.php/Test_1
仍然与以下内容相同:
- domain.com/redirect/index.php?slug=Test_1
(注意:是的,index.php 需要保留在 url 中。)
我在我的 htaccess 中使用了以下内容,但我知道它可能会更好:
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ %{DOCUMENT_ROOT}/redirect/index.php?slug=$2 [PT,L,QSA]
我需要帮助...
一些旧的 url slug 中有正斜杠,如下所示:
- domain.com/redirect/index.php?slug=How_to_Code/Program
如果没有 htaccess,上述方法仍然有效,但使用 pretty(ier) url 失败:
- domain.com/redirect/index.php/How_to_Code/Program
使用我当前的 htaccess,它只捕获“How_to_Code”部分,但忽略它之后的所有内容。
所以我的问题是:如何重组我的 htaccess 以获取 domain.com/redirect/index.php/(.*)$ 之后的所有内容,包括正斜杠?
编辑:这个 .htaccess 进入 /redirect 目录