0

我有州列表和一个 php 文件,它将列出该州的所有城市。通过将 URL 参数作为/common.php/?state=Texas并列出所有城市。单击城市后,它会将 url 作为/common.php/?city=Alanreed&state_code=TX并显示城市信息。

我想使用 .htaccess 格式化 url,就像它应该采用的状态state_name.html eg. Texas.html和城市名称一样,Texas/sugar_land.html或者tx/sugar_land.html我如何使用 php 和 .htaccess 来实现这一点?

4

2 回答 2

1
RewriteEngine On
RewriteRule ^(.*)/(.*).html$ common.php/?state=$1&city=$2 [L]
RewriteCond %{REQUEST_URI} !^(.*/)?index\.html$ [NC]
RewriteRule ^(.*).html$ common.php/?state=$1 [L]

\w{2}表示2字字符,所以重写为状态码,第二条规则是重写完整的状态名称,第三条是重写状态。

于 2012-06-18T11:50:46.530 回答
0

尝试这样的事情:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^([a-z]{2})\.[hH][tT][mM][lL]?$ common\.php\?state_code=$1
    RewriteRule ^([a-zA-Z]+)\.[hH][tT][mM][lL]?$ common\.php\?state=$1

    RewriteRule ^([a-z]{2})/([_a-zA-Z]+)\.[hH][tT][mM][lL]?$ common\.php\?state_code=$1&city=$2
    RewriteRule ^([a-zA-Z]+)/([_a-zA-Z]+)\.[hH][tT][mM][lL]?$ common\.php\?state=$1&city=$2
</IfModule>

也应该适用于 tx.htm 这假设您的 apache 启用了 mod_rewrite。

于 2012-06-18T12:14:01.993 回答