.htaccess用于清理网址

时间:2012-06-18 11:44:40

标签: php .htaccess

我列出了状态和一个php文件,它将列出该州的所有城市。将URL参数设为/common.php/?state=Texas并列出所有城市。 点击城市后,网址为/common.php/?city=Alanreed&state_code=TX并显示城市信息。

我想使用.htaccess来格式化网址,比如应该使用state_name.html eg. Texas.html的状态,以及城市名称Texas/sugar_land.htmltx/sugar_land.html如何使用php和.htaccess?

2 个答案:

答案 0 :(得分: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个单词字符,因此它被重写为状态代码,第二个规则是重写完整的状态名称,第三个是重写状态。

答案 1 :(得分: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。