我需要一点帮助。
我正在制作一个收集查询字符串的php页面,针对数据库对匹配进行测试,然后将用户重定向到网站的其他部分。
它是如何工作的(没有htaccess / mod_rewrite):
这部分工作正常。但是,由于我控制之外的一些变量,我需要解释原始URL(使用htaccess / mod_rewrite),如下所示:
仍然与以下内容相同:
(注意:是的,index.php需要留在网址中。)
我在htaccess中使用了以下内容,但我知道它可能更好:
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ %{DOCUMENT_ROOT}/redirect/index.php?slug=$2 [PT,L,QSA]
第一部分需要帮助......
一些旧的url slugs中有正斜杠,如下:
如果没有htaccess,上面的内容仍然有效,但是使用漂亮的(ier)url会失败:
使用我当前的htaccess,它只会捕获'How_to_Code'部分,但会忽略它之后的所有内容。
所以我的问题是这样的:我如何重构我的htaccess以获取domain.com/redirect/index.php/(.*)$之后的所有内容,包括正斜杠?
编辑:此.htaccess进入/ redirect目录
答案 0 :(得分:0)
如果你这样做
RewriteRule ^redirect/index.php/([a-zA-Z0-9/_]+)$ redirect/index.php?slug=$1
这将接受正斜杠和下划线。要添加任何允许的字符,只需将它们添加到[]方括号内。某些字符可能需要转义,因此Google只能转义。