我们正在建立一个网站,用户必须登录才能查看网站内容(类似于Facebook和Twitter使用的内容)
问题是我们网站的导航完全搞砸了:
与facebook(url)相比:
为什么像facebook这样的网站有如此干净的网址?他们是如何做到的呢?我想创建一个干净的网站,其中包含干净/用户友好的网址(不包含#
或?
以及&
和=
) - 我从哪里开始?我们需要使用任何框架(yii,zend等等)吗?
答案 0 :(得分:2)
是的,你必须使用mod-re-write。
例如,这是将sitename.com/login_success.php#page2
更改为sitename.come/page2
的方式:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
</IfModule>
#first, what is the original request
RewriteCond %{THE_REQUEST} /login_success.php#page([0-9]*)
# now use regex to redirect to the clean url structure
RewriteRule ^$ /page%1? [R=301,L,NE]
# now make the clean url serve the content from the ugly one
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page([0-9]+) /login_success.php#page$1 [L]
我不太确定最后一次正则表达式比赛,但我希望这能让你走上正轨!
答案 1 :(得分:1)
我相信你的情况下会进行大量的编码。所以现在切换到像yii或zend这样的框架是不明智的,这个决定应该提前做好。
您可以使用apache web server的mod_rewrite。
答案 2 :(得分:0)
他们使用mod_rewrite
和类似工具来清理他们的网址。
mod_rewrite
。 IIS等效项名为URL Rewrite。
http://httpd.apache.org/docs/current/mod/mod_rewrite.html
http://www.iis.net/downloads/microsoft/url-rewrite
您不需要使用特殊框架来实现此功能,但它有助于简化流程,因为许多框架都内置了此功能。
想到的是Wordpress。 Wordpress使您可以很好地控制其工作方式,而无需过多地触摸配置文件。