带有可选斜杠的简单重写规则
Simple Rewrite rule with optional slash
我只需在我的 htaccess 中添加一个重写规则即可:
http://mysite/toto -> http://mysite/page.php?c=toto
结果相同:
http://mysite/toto/ -> http://mysite/page.php?c=toto
我的 htaccess 文件:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(.*)/?$ page.php?c= [L]
适用于 URL "http://mysite/toto"
但没有 URL "http://mysite/toto/" --> result: http://mysite/page.php?c=toto/
如何解决这个问题?
好的,所以你 运行 进入 "greedy" 匹配,.* 匹配所有内容。你可以做的是得到每个不是 /
的字符:
^([^/]).
这表示:
- 比赛开始
^
- 匹配除/以外的任意字符:
[^/]
- 将第 2 步匹配引用为 $1
the parens do that
这会做你想做的。请注意,如果您必须转义 /
字符,则需要使用 /。我认为您不需要使用 htaccess 文件。
好的谢谢!
我试试这个,它看起来很管用!
RewriteBase /
RewriteRule ^(.*[^/])/?$ page.php?c= [QSA,L]
url=http://localhost/toto/ --> result= http://localhost/page.php?c=toto
url=http://localhost/toto --> result= http://localhost/page.php?c=toto
我只需在我的 htaccess 中添加一个重写规则即可:
http://mysite/toto -> http://mysite/page.php?c=toto
结果相同:
http://mysite/toto/ -> http://mysite/page.php?c=toto
我的 htaccess 文件:
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^(.*)/?$ page.php?c= [L]
适用于 URL "http://mysite/toto"
但没有 URL "http://mysite/toto/" --> result: http://mysite/page.php?c=toto/
如何解决这个问题?
好的,所以你 运行 进入 "greedy" 匹配,.* 匹配所有内容。你可以做的是得到每个不是 /
的字符:
^([^/]).
这表示:
- 比赛开始
^
- 匹配除/以外的任意字符:
[^/]
- 将第 2 步匹配引用为 $1
the parens do that
这会做你想做的。请注意,如果您必须转义 /
字符,则需要使用 /。我认为您不需要使用 htaccess 文件。
好的谢谢! 我试试这个,它看起来很管用!
RewriteBase /
RewriteRule ^(.*[^/])/?$ page.php?c= [QSA,L]
url=http://localhost/toto/ --> result= http://localhost/page.php?c=toto
url=http://localhost/toto --> result= http://localhost/page.php?c=toto