htaccess:多次重写

时间:2015-05-13 14:07:21

标签: regex apache .htaccess mod-rewrite

我想重写以下内容:

http://www.example.com/maphttp://www.example.com/index.php?p=map

http://www.example.com/map/1http://www.example.com/index.php?p=map&id=1

我目前的代码是:

RewriteEngine On
RewriteRule ^([^/]*)\$ /index.php?p=$1 [NC]
RewriteRule ^([^/]*)/([^/]*)\$ /index.php?p=$1&id=$2 [L]

但如果失败......

谁可以帮助我使用正确的.htaccess代码? Thanx提前!

1 个答案:

答案 0 :(得分:1)

您需要忽略重写中的真实文件和目录,不要逃避$

您可以使用:

RewriteEngine On

# rule to ignore files and directories from all rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/?$ /index.php?p=$1 [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?p=$1&id=$2 [L,QSA]