重写URL正则表达式

时间:2011-04-29 13:59:24

标签: php regex .htaccess

我想重写这个网址:

http://www.mysite/folder/dept/accounting/name.php?id=12

http://www.mysite/folder/dept/accounting/name/12

我找到了使用.htaccess重写网址的示例,但是当相关目录不是TLD时,它们似乎不起作用。

2 个答案:

答案 0 :(得分:2)

RewriteEngine On

RewriteRule ^(folder/dept/accounting/name)/(\d+)/?$ $1.php?id=$2

答案 1 :(得分:0)

如果我理解你的问题是正确的,那么这些规则应该适用于你的DOCUMENT_ROOT .htaccess文件:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond  %{QUERY_STRING} ^id=(.*)$ [NC]
RewriteRule ^([^.]+)\.php$ /$1/%1? [L,NC]

这将内部重定向 URI为/folder/dept/accounting/name.php?id=12/folder/dept/accounting/name/12

如果我没有正确理解你的问题,你实际上想要与上述答案相反,那么在.htaccess中使用此代码:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond  %{QUERY_STRING} !^id= [NC]
RewriteRule ^(.*)/(\d+)/?$ /$1.php?id=$2 [L]

这将内部重定向一个/folder/dept/accounting/name/12/folder/dept/accounting/name.php?id=12的URI。