Home  >  Article  >  Backend Development  >  php url

php url

WBOY
WBOYOriginal
2016-06-23 13:01:241014browse

这功能要怎么实现
localhost/china   访问到  localhost/showservices.php?id=26

現時頁面的路徑是顯示它的頁面id;客人希望能夠在後台加上新功能,可自訂路徑的名字,當更改了路徑後,前台不會看到 ‘’id=xx’’,輸入新路徑時會自動連結到對應的頁面例子localhost/showservices.php?id=26改成localhost/china但仍然是連接到 showservices.php?id=26 的位置


回复讨论(解决方案)

localhost/china   访问到  localhost/showservices.php这个可以实现的  
但是如果要用到id参数的话就要另外处理了  要不走post 要不通过其他方式传值过去 你仔细看你的这个帖子的url
http://bbs.csdn.net/topics/391966541  实际上391966541就是你的帖子的id  只不过他重新过了而已

如果要使用url重写  也就是伪静态   
 apache服务器需开启对应的rewrite模块  nginx也有相应的地方

如果是apache 一般重写的规则建议用.htaccess文件写在你的项目入口文件处 以下是一个apache  .htaccess文件实例

<IfModule mod_rewrite.c>  Options +FollowSymlinks  RewriteEngine On  RewriteRule ^/?$ /index.php/Api/PcOrder [L]  RewriteCond $1 !^/?index.php  RewriteCond $1 !^/?Public/  RewriteCond $1 !^/?robots.txt$</IfModule>

其中 RewriteEngine On下面即为重写部分  需要用到正则表达式  详细的还的楼主自己去了解  希望能帮到你



localhost/china      访问到     localhost/showservices.php?id=26
问题是china 这个不是固定的    一个id对应一个url
localhost/jan      要访问到     localhost/showservices.php?id=6

localhost 下面还有 php文件   没法区分



localhost/XXX   

XXX 没有  .php  访问到  localhost/showservices.php

这个.htaccess文件要怎么写?

创建并命名为.htaccess文件
文件内容如下

RewriteEngine on
RewriteRule ^/china$ /showservices.php?id=26 [L]



你需要确保服务器有开启rewrite与支持.htaccess

参考:
http://blog.csdn.net/fdipzone/article/details/8762507
http://blog.csdn.net/fdipzone/article/details/8743940



localhost/china      访问到     localhost/showservices.php?id=26
问题是china 这个不是固定的    一个id对应一个url
localhost/jan      要访问到     localhost/showservices.php?id=6

localhost/XXX   
XXX 没有  .php  访问到  localhost/showservices.php
这个.htaccess文件要怎么写?

三个字母组合,不少于 2600 种
四个字母组合,不少于14950 种
.....
你是打算把 apache 累死,还是打算让自己打字打疯?

你这种还不如直接跳到一个固定地址,然后根据路径再跳转。
用rewrite不适合匹配全部不适合

暴力点,直接301过去不行吗?




我发邮件问技术负责人,他就回复

Yes, you can do with htaccess feature, details as below:
1. Create the table to store the mapping records
2. Create the record based section to manage the mapping records
3. One create / update the record, will regenerate the htaccess file

翻译后我没明白什么意思

他的意思使用.htaccess用rewrite

不过我不建议。因为你匹配的太多了
应该先跳入一个公用页面,再跳转。

Yes, you can do with htaccess feature, details as below:
1. Create the table to store the mapping records
创建表来存储映射记录
这就一般短网址的处理方式一样了

2. Create the record based section to manage the mapping records
通过前缀来管理,实质上与 1 是一致的

3. One create / update the record, will regenerate the htaccess file
你也可以从映射表创建 .htaccess 文件

url 重写一般不宜超过 20 条规则,尤其是写在 .htaccess 中的
每次访问都要从硬盘加载并解析,并不管是否用到用不到


  RewriteEngine on  ErrorDocument 404(.*) showservices.php?url=$1

如何获取不存在页面参数?
localhost/test/CH1
CH1 是不存在的 获取该参数  showservices.php?url=CH1

上面是不行的

RewriteEngine On
RewriteCond %{QUERY_STRING} !^(.php)
RewriteRule ^(.*)$ showservices.php?url=$1 [QSA,PT,L]

后缀有 .php还会跳转?

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn