mod_rewrite帮助

时间:2013-01-10 15:55:38

标签: mod-rewrite

我一直在努力使用mod_rewrite,希望在以下场景中提供帮助:

我想要以下网址格式:

  

http://site.com/ [subsection] / [country name] / [city name]

打开页面(不是重定向):

  

http://site.com/ [国家/地区名称] / [城市名称] /index.php

因此,例如,如果用户键入以下任何内容:

  

site.com/search/Canada/Vancouver

     

site.com/content/Canada/Vancouver

它会显示文件(不是重定向):

  

site.com/Canada/Vancouver

提前感谢。

2 个答案:

答案 0 :(得分:2)

请尝试以下规则:[虽然未在此处测试]

RewriteRule ^(search/)([^?]*) $2 [L,NC]
RewriteRule ^(content/)([^?]*) $2 [L,NC]

答案 1 :(得分:0)

你可以试试这个:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  [^/]+/([^/]+)/([^/]+)/?   [NC]
RewriteRule .*  %1/%2/index.php  [L,QSA]

它将在内部进行映射:

http://site.com/folder/anycountry/anycity

要:

http://site.com/anycountry/anycity/index.php

如果保留了传入的URL结构,则将查询字符串(如果有)传递给index.php。换句话说,这个:

http://site.com/anycountry/anycity或此

http://site.com/folder/anycountry/

不起作用,但是这个:

http://site.com/folder/anycountry/anycity/?par1=val1&par2=val2...

会奏效。