这个问题可能是重复的.但我没有找到任何适用于我的解决方案.我想重写URL,我有一个和两个级别的参数.第一个参数是p第二个参数sp
www.domain.com/home应该指向www.domain.com/index.php?p=home
并且
www.domain.com/projects/99应该指向www.domain.com/index.php?p=projects&sp=99
我怎么办.htaccess?
目前我的htaccess如下,
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1
RewriteRule ^([^/]*)/([^/]*)\$ index.php?p=$1&sp=$2 [L]
Run Code Online (Sandbox Code Playgroud)
这个htaccess的问题是它正确指向一个级别的URL.即.,www.domain.com/home.但不是两级网址.即.www.domain.com/projects/99
ark*_*cha 37
您必须单独处理规则.规则之前的所有条件仅适用于单个规则.该规则不涉及以下规则.你试图"链接"两个规则.第二个规则永远不可能匹配,因为第一个规则是一个改变语法的全能.除此之外,您必须确保第一条规则不会捕获不需要的请求.还要考虑是否要在正则表达式中使用*或+运算符.我建议您使用+运算符,以便在为"页面"或"子页面"请求空值时有明确的错误消息.
所以这可能更接近你正在寻找的东西:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?p=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?p=$1&sp=$2 [L]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53735 次 |
| 最近记录: |