Sum*_*pta 52 php friendly-url url-rewriting
我正在设计一个网站.我希望我的网站地址如下图所示:
我不希望我的网站看起来像http://something.com/profile.phphttp://something.com/profile.php
当有人打开我的网站时,
我希望在地址栏中删除扩展名.换句话说,我希望我的网站像:http://something.com/profile
作为第二个示例,您可以查看StackOverflow网站本身.
有人可以帮助我完成这项工作吗?谢谢!
小智 76
只需将.htaccess文件添加到您网站的根文件夹(例如/home/domains/domain.com/htdocs/),其中包含以下内容:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
Run Code Online (Sandbox Code Playgroud)
Shi*_*ngh 13
首先,验证是否已安装mod_rewrite模块.然后,要小心了解它是如何工作的,很多人都会倒退.
您不隐藏网址或扩展程序.例如,你所做的就是创建一个指向旧网址的新网址
放在您网站上的网址为yoursite.com/play?m=asdf
还是更好
yoursite.com/asdf
即使目录asdf不存在.然后安装mod_rewrite,将其放在.htaccess中.基本上它说,如果请求的URL不是文件而不是目录,请将其指向我的脚本:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /play.php [L]
Run Code Online (Sandbox Code Playgroud)
差不多完成了 - 现在你只需要在PHP脚本中写一些东西来解析新的URL.您希望这样做,以便OLD也可以工作 - 您所做的是维护一个系统,通过该系统变量始终完全相同或创建一个数据库表,将"SEO友好URL"与产品ID相关联.一个例子可能是
/ Some-Cool-Video(等于产品ID asdf)
这有什么好处?搜索引擎会将关键词"Some Cool Video"编入索引.ASDF?谁会去搜索?
我不能给你如何编程的具体细节,但采取查询字符串,剥离结束
yoursite.com/Some-Cool-Video
Run Code Online (Sandbox Code Playgroud)
变成"asdf"
然后将m变量设置为this
米= ASDF
所以这两个URL仍然会转到同一个产品
yoursite.com/play.php?m=asdf
yoursite.com/Some-Cool-Video
Run Code Online (Sandbox Code Playgroud)
mod_rewrite也可以做很多其他重要的事情,谷歌为它,并在你的服务器上激活它(它可能已经安装.)
您有不同的选择。其中之一是创建一个名为“ profile”的文件夹,并将“ profile.php”重命名为“ default.php”,然后将其放入“ profile”文件夹。您可以通过以下方式向该页面下达订单:
旧页面:http://something.com/profile.php?id = a&abc = 1
新页面:http://something.com/profile/?id = a&abc = 1
如果您不满意,请对复杂的方法发表评论。