我在mod_rewrite
中使用.htaccess
将双目录结构更改为双GET
查询字符串,如下所示:
网址:http://domain.com/test/me/
在mod_rewrite之后:http://domain.com/index.php?u=test&c=me
在我的.htaccess
文件中使用以下代码:
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)/$ /index.php?u=$1&c=$2 [L]
效果很好,但是如果没有指定第二个目录(例如http://domain.com/test/
),我希望c
变量等于“all”,如下所示:
http://domain.com/index.php?u=test&c=all
我该怎么做? 谢谢,正则表达式看起来像克林贡诗歌。我尝试了上述代码的一些不同变体但没有成功。
P.S。如果您可以添加尾随/
,即使未在网址框中输入任何内容http://domain.com/test/me
,也可以使用http://domain.com/test/me/
处理与http://domain.com/test
相同且http://domain.com/test/
被视为奖励积分与{{1}}
答案 0 :(得分:2)
喜欢这个吗?
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)\/?$ index.php?u=$1&c=all
RewriteRule ^([^/]*)/([^/]+)\/?$ index.php?u=$1&c=$2 [L]
还有奖金:P