如何创建漂亮的网址

时间:2013-05-25 07:45:02

标签: php mysql .htaccess

我的网站上有这样的网址 - http://www.mydomain.com/profiles/centers/index.php?code=2507&name=Tharanga+Higher+Educational+Institute#page=art-section

当我转到上一页时,我需要在浏览器的地址栏上显示上面的url作为友好网址。

我期待这样的网址 -

http://mydomain.com/centers/Tharanga-Higher-Educational-Institute#page=art-section

到目前为止,我的.htaccess文件中的代码

# Enable Rewriting 
RewriteEngine on 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /profiles/centers/index.php\?code=([0-9]+)&name=([^&]+)&?([^\ ]+)
RewriteRule ^profiles/centers/index\.php /%1/?%2 [R=301,L,NE]

但是这段代码对我不起作用。希望有人能帮助我。 谢谢。

1 个答案:

答案 0 :(得分:4)

用以下代码替换您的代码:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+profiles/centers/index\.php\?code=([^&]+)&name=([^&\s]+) [NC]
RewriteRule ^ /%1/%2? [R=302,L,NE]

RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([^/]+)/([^/]+)/?$ /profiles/centers/index.php?code=$1&name=$2 [L,NC,QSA,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpe?g|gif|png)$ /profiles/centers/%{REQUEST_URI} [NC,L,R=302]

验证一切正常后,将R=302替换为R=301。在测试mod_rewrite规则时,请避免使用R=301(永久重定向)。