【发布时间】:2011-01-02 23:30:53
【问题描述】:
这是我使用的代码,
<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([^/]+)/?([^/]+) index.php?user=$1&do=$2 [L]
</IfModule>
如果我给它abcd/1234,它将首先捕获abcd,然后将1234 作为第二个变量。但如果 url 是 abcd/ 或 abcd,第一个捕获保持不变,但第二个捕获变为 d。这不会对 php 代码本身造成任何问题,但如果一开始就没有捕获它会更有效。
澄清一下,index.php 页面不需要第一次或第二次捕获。但如果它们存在会改变它的目的。
对正则表达式代码的任何帮助将不胜感激,如果有任何改进或编写效率更高的方法,我将不胜感激!
非常感谢你:)
我使用这个工具http://gskinner.com/RegExr/ 来检查这个。
【问题讨论】:
标签: regex apache .htaccess mod-rewrite friendly-url