我使用.htaccess
代码重写URL:
RewriteEngine On
RewriteBase /test_2/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^register test_rewrite.php?action=reg&send=ik&mode=insert [L,NC]
我的想法是在PHP中对不同的文件使用不同的规则,例如对于search.php
、blog.php
、users.php
,在每种情况下使用特定的规则。
同样在同一个文件的每个URL中,例如users.php
,我发送不同的参数,在某些情况下使用字符串作为action,mode,或者简单的action来发送URL中的值,就像创建没有URL友好的PHP脚本时最传统的用法一样。
这种情况下,我需要发送不同的值,并检测这些值内.htaccess
重写,最自动的可能.
我想可以把无限的斜线为同一个URL,例如search/test/test1/test1
,没有得到错误404,实际上这工程,如果我只使用前缀,但需要检测值从PHP的URL发送
我的想法是创建一个规则来检测我发送的值,例如,URL
RewriteRule ^register test_rewrite.php?action=reg&send=ik&mode=insert
其思想是^register
将get的所有值都作为$_GET
接收,就像我在示例中输入until
例如:
如果我的URL是insert.php?action=reg&send=ik&id=123
,id在每种情况下都是不同的,我想发送到.htaccess
作为URL/test_2/register/123
,我如何才能做到这一点?
最后,我真的希望get可以把URL与不同数量的斜线,可以显示为友好的没有收到404错误和发送的值。
1条答案
按热度按时间ogq8wdun1#
你的问题有点难以理解,但我想给予。
如果我理解正确的话,那么您正在寻找一种方法,让规则捕获单个(这里是数字)参数,同时您希望忽略任何前缀路径,直到您希望在规则中匹配的某个关键字。
这可能会让你走上正确的轨道:
这会将所有这些请求重写到同一个目标:
https://example.com/register/111
=〉/insert.php?action=reg&send=ik&id=111
https://example.com/foo/register/222
=〉/insert.php?action=reg&send=ik&id=222
https://example.com/foo/bar/register/333
=〉/insert.php?action=reg&send=ik&id=333
你当然需要修改这个,使它适应你的具体需要。所以没有什么你可以盲目复制。